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


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();
   }
}

输出

更新时间:2020 年 2 月 11 日

414 次浏览

开启您的 职业生涯

完成课程并获得认证

开始
广告
© . All rights reserved.