FlexDock is a Java docking framework for use in cross-platform Swing applications. It offers features you'd expect in any desktop docking framework such as:
Tabbed and Split Layouts
Drag-n-Drop capability (with native drag rubber band painting on some platforms)