import javax.swing.BorderFactory;
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;

public class TabbedPaneDemo extends JPanel {
    public TabbedPaneDemo() {
        super(new GridLayout(1, 1));

        JTabbedPane tabbedPane = new JTabbedPane();

        // trigger the bug
        // insets.right > insets.left
        tabbedPane.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 50, Color.red));
        
        // insets.left > insets.right
        // tabbedPane.setBorder(BorderFactory.createMatteBorder(0, 50, 0, 0, Color.red));

        for (int i = 0; i < 4; i++) {
            JLabel lbl = new JLabel("Tab " + (i + 1));
            tabbedPane.addTab("Tab " + (i + 1), /*Icon*/null, /*Component*/lbl, /*Tooltip*/null);
        }

        add(tabbedPane);
        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    }

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("TabbedPaneDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.add(new TabbedPaneDemo(), BorderLayout.CENTER);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
} 