public FloatChildDocks(JFrame frame) { super(new BorderLayout()); // Create the dock model for the docks. FloatDockModel dockModel = new FloatDockModel(); dockModel.addOwner("frame0", frame); // Give the dock model to the docking manager. DockingManager.setDockModel(dockModel); // Create the content components. TextPanel textPanel1 = new TextPanel("I am window 1."); TextPanel textPanel2 = new TextPanel("I am window 2."); TextPanel textPanel3 = new TextPanel("I am window 3."); // Create the dockables around the content components. Icon icon = new ImageIcon(getClass().getResource("/com/javadocking/resources/images/text12.gif")); Dockable dockable1 = new DefaultDockable("Window1", textPanel1, "Window 1", icon); Dockable dockable2 = new DefaultDockable("Window2", textPanel2, "Window 2", icon); Dockable dockable3 = new DefaultDockable("Window3", textPanel3, "Window 3", icon); // Create the single child docks for the float dock. SingleDock singleDock1 = new SingleDock(); SingleDock singleDock2 = new SingleDock(); // Add the dockables to the single docks. singleDock1.addDockable(dockable1, SingleDock.SINGLE_POSITION); singleDock2.addDockable(dockable2, SingleDock.SINGLE_POSITION); // Create the tab dock. TabDock tabDock = new TabDock(); // Add the dockable to the tab dock. tabDock.addDockable(dockable3, new Position(0)); // The position for the float child docks. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = screenSize.width / 2 - 100; int y = screenSize.height / 2 - 100; // Get the float dock. This is a standard dock of the floating dock model. FloatDock floatDock = dockModel.getFloatDock(frame); floatDock.setChildDockFactory(new SingleDockFactory()); floatDock.setDockPriority(Priority.CAN_DOCK_WITH_PRIORITY); // Add the child docks to the float dock. floatDock.addChildDock(singleDock1, new Position(x, y, 0)); floatDock.addChildDock(singleDock2, new Position(x + 50, y + 50, 1)); // Add the 1 root dock to the dock model. dockModel.addRootDock("tabDock", tabDock, frame); // Add the split pane to the panel. add(tabDock, BorderLayout.CENTER); }