A Tabbed View of Life

Problem

These layouts don’t include a tab layout, and you need one.

Solution

Use a JTabbedPane.

Discussion

The JTabbedPane class acts as a combined container and layout manager. It implements a conventional tab layout, which looks like Figure 13-2.

JTabbedPane: two views in Java Look and one in MS-Windows Look

Figure 13-2. JTabbedPane: two views in Java Look and one in MS-Windows Look

To 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. Example 13-1 is the code for our simple program.

Example 13-1. TabPaneDemo.java

import 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 Also

The third screen shot in Figure 13-2 shows the program with a MS-Windows look and feel, instead of the default Java look and feel. See Section 13.13 for how to change the look and feel of a Swing-based GUI application.

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.