Java Swing How to - Set JTabbedPane to position tab headers bottom right to left








Question

We would like to know how to set JTabbedPane to position tab headers bottom right to left.

Answer

import java.awt.ComponentOrientation;
import java.awt.Dimension;
/*  ww w  .  j  a v a 2  s .c  o m*/
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

public class Main extends JFrame {
  JTabbedPane tabbedPane = new JTabbedPane();

  public Main() {    
    tabbedPane.setPreferredSize(new Dimension(300, 200));
    getContentPane().add(tabbedPane);
    JPanel panel = new JPanel();
    tabbedPane.add(panel, "null");
    JTextField one = new JTextField("one");
    tabbedPane.add(one, "one");
    JTextField two = new JTextField("two");
    tabbedPane.add(two, "<html> Tittle  1 </html>");
    tabbedPane.setEnabledAt(2, false);
    tabbedPane.setTitleAt(2,
        "<html><font color=" + (tabbedPane.isEnabledAt(2) ? "black" : "red")
            + ">" + tabbedPane.getTitleAt(2) + "</font></html>");
    tabbedPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
  }

  public static void main(String args[]) {
    Main frame = new Main();
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
}