今天學習了一下Java中的選項卡面板(JTabbedPane)的相關知識,有許多的好玩之處,也有許多不太懂的地方就去問了問度娘。
一起看看JTabbedPane的有趣故事:
還和以前一樣,從代碼說起。代碼比較長我就直接用圖片展示給大家。
(1)導入相關的包。
這一部分我就不做過多的解釋以及說明,就是Java源代碼中所用到的一些的包。
(2)主函數部分
這一部分主要就是定義了一些私有的按鈕,以及主函數。主類直接繼承了JFrame面板。主函數直接新建了JTabbedPaneTest 類的對象,並設置對象為可見形式。
(3)JTabbedPaneTest 類的構造方法。
這一部分是 JTabbedPaneTest 類的無參數的構造方法。
36~38行:設置窗體的標題、大小以及窗體的關閉方式。
40~45行:創建內容面板,並且設置其布局為邊界布局(BorderLayout),將選項卡面板放置在內容面板的中間部分。
40行:新建內容面板對象contentPane。
41行:新建選項卡面板對象tabbedPane。
42~45行:設置內容面板 contentPane的布局方式,並將選項卡面板加入到內容面板的中間部分。之后將JFrame窗體中的容器設置為 contentPane。
47行:調用按鈕初始化函數 buttonInit(),將所有選項卡面板上的按鈕進行初始化。
48行:調用選項卡面板初始化tabbedPaneInit(),將選項卡面板進行初始化。
49行:調用監聽函數addListener(),給所有的按鈕添加監聽事件。
(4)按鈕初始化函數 buttonInit()。
54~57行:新建一個單選按鈕面板,其采用表格布局,設置為8行1列,將面板panel放在容器contentPane的左側。
59~62行:新建一個JLabel 標簽,將其設置為“選項卡方向按鈕”,並更該其字體為微軟雅黑,黑體14號字體。
調用JLabel包中的setHorizontalTextPosition(int textPosition) 方法,該方法設置標簽的文本相對其圖像的水平位置。
其參數為:textPosition
- SwingConstants
中定義的以下常量之一:LEFT
、CENTER
、RIGHT
、LEADING
或 TRAILING
(默認)。
63~79行:這幾行就是設置按鈕的標題以及字體。
JRadioButton:實現一個單選按鈕,此按鈕項可被選擇或取消選擇,並可為用戶顯示其狀態。與 ButtonGroup
對象配合使用可創建一組按鈕,一次只能選擇其中的一個按鈕。
(創建一個 ButtonGroup 對象並用其 add
方法將 JRadioButton 對象包含在此組中。)
65行:調用setSelected()方法,將“選項卡在頂部”設置為默認選中。
80~85行:創建一個ButtonGroup 對象,將 rdbtnTop,rdbtnDown,rdbtnLeft,rdbtnRight 按鈕加入到該對象中,保證每一次只能選擇四個按鈕中的一個。
86~90行:參考59~62行,進行理解。
91~99行:參考63~79行,進行理解。
100~103行:參考80~95行,進行理解。
(5)選項卡面板初始化 tabbedPaneInit()。
該方法中分為三個部分,每一部分都是一樣的,所以只進行一部分的說明。
118~122行:新建標簽 laLB,並設置其標題以及字體,之后調用JLabel包中的setHorizontalTextPosition(int textPosition) 方法,該方法設置標簽的文本相對其圖像的水平位置。
最后將該標簽及其組件加入到tabbedPane 面板中。
(6)監聽事件addListener()。
126~153行:該部分分為4部分,每一部分都實現的是動作監聽器,並且基本類似,故只說明其中一部分。
147~153行:第4部分,添加了動作監聽器 ActionListener(),實現了其中的 actionPerformed(ActionEvent args) 方法,之后調用選項卡面板中
setTabPlacement(int tabPlacement) 方法,設置此選項卡窗格的選項卡布局。可能的值為:
JTabbedPane.TOP、
JTabbedPane.BOTTOM、
JTabbedPane.LEFT、
JTabbedPane.RIGHT,
如果未設置,則默認值為 SwingConstants.TOP
。
154~167行:該部分分為2部分,每一部分都實現了動作監聽器,但是和上面的四部分有有所不同。
161~167行:第2部分,添加了動作監聽器ActionListener(),實現了其中的actionPerformed(ActionEvent args)方法,之后調用選項卡面板中
setTabLayoutPolicy(int tabLayoutPolicy)方法,設置在一次運行中不能放入所有的選項卡時,選項卡窗格使用的對選項卡進行布局安排的策略。可能的值為:
-
-
JTabbedPane.WRAP_TAB_LAYOUT
JTabbedPane.SCROLL_TAB_LAYOUT,
JTabbedPane.WRAP_TAB_LAYOUT
-
。
-