JTabbedPane

Example

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TabbedPaneDemo extends JPanel {
    public TabbedPaneDemo() {
        JTabbedPane tabbedPane = new JTabbedPane();

        Component panel1 = makeIconPanel("Bird");
        tabbedPane.addTab("Bird", null, panel1, "tweet tweet");
        tabbedPane.setSelectedIndex(0);

        Component panel2 = makeIconPanel("Cat");
        tabbedPane.addTab("Cat", null, panel2, "meow meow");

		
        Component panel3 = makeIconPanel("Dog");
        tabbedPane.addTab("Dog", null, panel3, "woof woof");

		Component panel4 = makeIconPanel("Pig");
        tabbedPane.addTab("Pig", null, panel4, "oink oink");


        //Add the tabbed pane to this panel.
        setLayout(new GridLayout(1, 1)); 
        add(tabbedPane);
    }

    protected Component makeIconPanel(String text) {
        JPanel panel = new JPanel(false);
		ImageIcon icon = new ImageIcon("images/"+text+".gif");
        JLabel filler = new JLabel();
		filler.setIcon(icon);
        filler.setHorizontalAlignment(JLabel.CENTER);
        panel.setLayout(new GridLayout(1, 1));
        panel.add(filler);
        return panel;
    }

    public static void main(String[] args) {
        final JFrame frame = new JFrame("TabbedPaneDemo");
		//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
        });

        frame.getContentPane().add(new TabbedPaneDemo(), 
                                   BorderLayout.CENTER);
        frame.setSize(160, 200);
		//frame.pack();
        frame.setVisible(true);
    }
}

Tutorial example

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TabWindow extends JFrame {
    boolean inAnApplet = true;
     
    final static String BUTTONPANEL = "JPanel with JButtons";
    final static String TEXTPANEL = "JPanel with JTextField";

    public TabWindow() {
        Container contentPane = getContentPane();

        JTabbedPane tabbedPane = new JTabbedPane();

        JPanel p1 = new JPanel() {
            //Force the window to be 400+ pixels wide.
            public Dimension getPreferredSize() {
                Dimension size = super.getPreferredSize();
                size.width = 400;
                return size;
            }
        };
        p1.add(new JButton("Button 1"));
        p1.add(new JButton("Button 2"));
        p1.add(new JButton("Button 3"));
        tabbedPane.addTab(BUTTONPANEL, p1);

        JPanel p2 = new JPanel();
        p2.add(new JTextField("TextField", 20));
        tabbedPane.addTab(TEXTPANEL, p2);

        contentPane.add(tabbedPane, BorderLayout.CENTER);
        
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (inAnApplet) {
                    dispose();
                } else {
                    System.exit(0);
                }
            }
        });
    }

    public static void main(String args[]) {
        TabWindow window = new TabWindow();
        window.inAnApplet = false;

        window.setTitle("TabWindow");
        window.pack();
        window.setVisible(true);
    }
}


Maintained by John Loomis, last updated 6 July 2000