The 3D Viewer uses Java Swing to display its user interface (outside of the main viewport). I implemented various custom Swing-based user interface components, such as the tabbed panel at the top, the status bar at the bottom, and the 3D Viewer Preferences dialog box, shown in this screenshot.