ProblemThese layouts don't include a tab layout, and you need one. SolutionUse a JTabbedPane. DiscussionThe JTabbedPane class acts as a combined container and layout manager. It implements a conventional tab layout, which looks like Figure 14-2. Figure 14-2. JTabbedPane: two views in Java Look and one in Windows LookTo add a tab to the layout, you do not use setLayout( ) . You simply create the JTabbedPane and call its addTab( ) method, passing in a String and a Component; you usually need to add JPanels or some similar Container to make a sophisticated layout. Example 14-1 is the code for our simple program. Example 14-1. TabPaneDemo.javaimport javax.swing.*; public class TabPaneDemo { protected JTabbedPane tabPane; public TabPaneDemo( ) { tabPane = new JTabbedPane( ); tabPane.add(new JLabel("One", JLabel.CENTER), "First"); tabPane.add(new JLabel("Two", JLabel.CENTER), "Second"); } public static void main(String[] a) { JFrame f = new JFrame("Tab Demo"); f.getContentPane( ).add(new TabPaneDemo( ).tabPane); f.setSize(120, 100); f.setVisible(true); } } See AlsoThe third screenshot in Figure 14-2 shows the program with a Windows look and feel, instead of the default Java look and feel. See Recipe 14.15 for how to change the look and feel of a Swing-based GUI application. |