如何在 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 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告