Add border for dockable component
package net.eleritec.docking.demos.border; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.ComponentProviderAdapter; import net.eleritec.docking.defaults.DefaultDockingPort; public class BorderDemo extends JFrame { public BorderDemo() { super("Border Docking Demo"); setContentPane(createContentPane()); } private JPanel createContentPane() { JPanel p = new JPanel(new BorderLayout(5, 5)); p.add(buildDockingPort("North"), BorderLayout.NORTH); p.add(buildDockingPort("South"), BorderLayout.SOUTH); p.add(buildDockingPort("East"), BorderLayout.EAST); p.add(buildDockingPort("West"), BorderLayout.WEST); p.add(createDockingPort(), BorderLayout.CENTER); return p; } private DefaultDockingPort buildDockingPort(String desc) { // create the DockingPort DefaultDockingPort port = createDockingPort(); // create the Dockable panel DockablePanel panel = new DockablePanel(desc); // dock the panel and return the DockingPort port.dock(panel.getDockable(), DockingPort.CENTER_REGION); return port; } private DefaultDockingPort createDockingPort() { DefaultDockingPort port = new DefaultDockingPort(); port.setPreferredSize(new Dimension(100, 100)); port.setBorderManager(new DemoBorderManager()); port.setComponentProvider(new ComponentProvider()); return port; } private class ComponentProvider extends ComponentProviderAdapter { public DockingPort createChildPort() { DefaultDockingPort port = new DefaultDockingPort(); port.setComponentProvider(this); return port; } public JSplitPane createSplitPane() { JSplitPane split = new JSplitPane(); split.setDividerSize(3); split.setBorder(null); if (split.getUI() instanceof BasicSplitPaneUI) { BasicSplitPaneDivider divider = ((BasicSplitPaneUI) split.getUI()).getDivider(); if (divider != null && divider.getBorder()!=null) divider.setBorder(null); } return split; } } public static void main(String[] args) { JFrame f = new BorderDemo(); f.setSize(600, 400); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }