如何在 Java 中将多个选项卡插入单个 JTabbedPane?

awtjavaobject oriented programmingprogrammingswing

JTabbedPane

  • JTabbedPane 是一个可以扩展 JComponent 类的组件,我们一次可以看到一个选项卡。
  • 每个选项卡都与一个组件相关联,该组件可以在选择选项卡时显示。
  • 当选择选项卡时,JTabbedPane 可以生成 ChangeListener 接口。
  • 也可以将多个选项卡 插入单个 JTabbedPane,JTabbedPane 的重要方法是 addTab()、fireStateChanged(),  getTabPlacement() setSelectedIndex() getTabCount()等等

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class NestedJTabbedPaneTest extends JFrame {
   public NestedJTabbedPaneTest() {
      setTitle("Nested JTabbedPane test");
      setLayout(new BorderLayout());
      JTabbedPane tabbedPane = new JTabbedPane();
      add(BorderLayout.CENTER, tabbedPane);
      createNestedTab(tabbedPane, 1);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLoc*ationRelativeTo(null);
      setVisible(true);
   }
   protected void createNestedTab(JTabbedPane jtp, int count) {
      if (count > 5) return;
      JTabbedPane tp = new JTabbedPane();
      tp.setTabPlacement(getNextOrientation(jtp.getTabPlacement()));
      jtp.addTab("Tab #" + count, tp);
      createNestedTab(tp, count+1);
   }
   private int getNextOrientation(int tabPlacement) {
      if (tabPlacement == JTabbedPane.TOP) return JTabbedPane.RIGHT;
      if (tabPlacement == JTabbedPane.RIGHT) return JTabbedPane.BOTTOM;
      if (tabPlacement == JTabbedPane.BOTTOM) return JTabbedPane.LEFT;
      else return JTabbedPane.TOP;
   }
   public static void main(String []args) {
      new NestedJTabbedPaneTest();
   }
}

输出


相关文章