import java.awt.GridLayout;
import java.awt.Label;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class CreateJTabbedPaneExample {

    private static void createAndShowGUI() {

        // UNCOMMENT ME FOR WORKAROUND
        // UIManager.put("TabbedPane.foreground", Color.BLACK);
        // UNCOMMENT ME FOR WORKAROUND

        final JFrame frame = new JFrame("Split Pane Example");

        // Display the window.
        frame.setSize(500, 300);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // set grid layout for the frame
        frame.getContentPane().setLayout(new GridLayout(1, 1));

        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);

        tabbedPane.addTab("Tab 1", makePanel("This is tab 1"));
        tabbedPane.addTab("Tab 2", makePanel("This is tab 2"));
        tabbedPane.addTab("Tab 3", makePanel("This is tab 3"));
        tabbedPane.addTab("Tab 4", makePanel("This is tab 4"));

        frame.getContentPane().add(tabbedPane);

    }

    private static JPanel makePanel(String text) {
        JPanel pane = new JPanel();
        pane.add(new Label(text));
        pane.setLayout(new GridLayout(1, 1));
        return pane;
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
} 
