Java JTabbedPane set tab layout policy

Description

Java JTabbedPane set tab layout policy


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

class TabPlacementAction implements ActionListener {
  private String action;
  private JTabbedPane tabbedPane;

  public TabPlacementAction(JTabbedPane tabbedPane, String action) {
    this.action = action;
    this.tabbedPane = tabbedPane;
  }//w w w  .j av  a 2  s .  c o  m

  @Override
  public void actionPerformed(ActionEvent e) {
    if ("left".equalsIgnoreCase(action)) {
      tabbedPane.setTabPlacement(JTabbedPane.LEFT);
    } else if ("right".equalsIgnoreCase(action)) {
      tabbedPane.setTabPlacement(JTabbedPane.RIGHT);
    } else if ("top".equalsIgnoreCase(action)) {
      tabbedPane.setTabPlacement(JTabbedPane.TOP);
    } else if ("bottom".equalsIgnoreCase(action)) {
      tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
    }
  }
}

public class Main extends JTabbedPane {

  public Main() {

    for (int i = 0; i < 10; i++) {
      JPanel tabPane = new JPanel();
      tabPane.add(new JLabel("Tab" + i));
      addTab("Tab " + i, null, tabPane, "Tab" + i);
    }
    setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
  }

  public static void main(String[] args) {
    Main m = new Main();
    
    // create frame for Main
    JFrame frame = new JFrame("java2s.com");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JMenuBar menuBar = new JMenuBar();
    
    JMenu menu = new JMenu("Tabbed Panels");
    JMenuItem left = new JMenuItem("Left", null);
    left.addActionListener(new TabPlacementAction(m, "left"));
    menu.add(left);

    JMenuItem right = new JMenuItem("Right", null);
    right.addActionListener(new TabPlacementAction(m, "right"));
    menu.add(right);

    JMenuItem top = new JMenuItem("Top", null);
    top.addActionListener(new TabPlacementAction(m, "top"));
    menu.add(top);
    
    JMenuItem bottom = new JMenuItem("Bottom", null);
    bottom.addActionListener(new TabPlacementAction(m, "bottom"));
    menu.add(bottom);
    
    menuBar.add(menu);
    
    frame.setJMenuBar(menuBar);
    

    frame.add(m);
    frame.setSize(300, 210);
    frame.setVisible(true);
  }
}



PreviousNext

Related