1、分割面板
JSplitPane類的常用構造方法 | |
---|---|
構造方法 | 說明 |
JSplitPane() | 創建一個默認的分割面板。默認情況下為在水平方向上分割,重繪方式為只在調整分隔條位置完成時重繪 |
JSplitPane(int neworientation) | 創建一個按照指定方向分割的分割面板。入口參數newOrientation的可選靜態JSplitPane(int newOrientation)常量有HORIZONTAL_SPLIT和VERTICAL_SPLIT |
JSplitPane(int neworientation,boolean newContinuousLayout) | 創建一個按照指定方向分割,並且按照指定方式重繪的分割面板。如果將入口參數 newContinuousLayout設為true,表示在調整分隔條位置的過程中連續重繪,設為false則表示只在調整分隔條位置完成時重繪 |
重繪:重新繪制組件的布局方式。如果把 newContinuousLayout設為true,拖動分隔條的時候組件也會跟着動,如果是false,拖動的僅僅是分隔條(組件不會跟着動),待分隔條定下來時,組件才跟着定下來。如果既需要水平分割又要在垂直分割,可以在其中一個分割面板的兩個方向上再添加分割面板。小例子:
// 創建一個水平方向的分割面板
JSplitPane hSplitPane = new JSplitPane();
// 分隔條左側的寬度為40像素
hSplitPane.setDividerLocation(40);
// 添加到指定區域
getContentPane().add(hSplitPane, BorderLayout.CENTER);
// 在水平面板左側添加一個標簽組件
hSplitPane.setLeftComponent(new JLabel("左面板"));
// 創建一個垂直方向的分割面板
JSplitPane vSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
// 分隔條上方的高度為30像素
vSplitPane.setDividerLocation(30);
vSplitPane.setDividerSize(8);// 分隔條的寬度為8像素
vSplitPane.setOneTouchExpandable(true);// 提供UI小部件
// 在調整分隔條位置時面板的重繪方式為連續繪制
vSplitPane.setContinuousLayout(true);
hSplitPane.setRightComponent(vSplitPane);// 添加到水平面板的右側
// 在垂直面板上方添加一個標簽組件
vSplitPane.setLeftComponent(new JLabel("上"));
// 在垂直面板下方添加一個標簽組件
vSplitPane.setRightComponent(new JLabel("下"));
2、選項卡面板
表23.3JTabbedPane類的所有構造方法 | |
---|---|
構造方法 | 說明 |
JTabbedPane() | 創建一個默認的選項卡面板。默認情況下標簽位於選項卡的上方,布局方式為限制布局 |
JTabbedPane(int tabPlacement) | 創建一個指定標簽顯示位置的選項卡面板。入口參數tabPlacement的可選靜態常量可以TOP、BOTTOM、LEFT 和RIGHT |
JTabbedPane(int tabPlacement,int tabLayoutPolicy) | 創建一個既指定標簽顯示位置又指定選項卡布局方式的選項卡面板。入口參數tabLayoutPolicy的可選靜態常量可以是WRAP_TAB_LAYOUT(限制布局為默認值)和SCROLL_TAB_LAYOUT(滾動布局) |
兩種布局方式是限制布局和滾動布局,限制布局中的選項卡面板可以隨着窗體的拖動做出合適的調整,滾動布局是窗體變小的時候會出現一個滾動條,可以點擊顯示被遮擋的選項卡。addTab()方法可以把所有入口參數都設置為空,即:
tabbedPane.addTab(null,null);
方法 | 說明 |
---|---|
addTab(String title,Component component) | 添加一個標簽為title |
addTab(String title,Icon icon,Component component) | 添加一個標簽為title、圖標為icon |
addTab(String title,Icon icon,Component component,String tip) | 添加一個標簽為title、圖標為icon、提示為tip的選項卡 |
InsertTab(String title,Icon icon,Component component,String tip, int index) | 在索引位置index處插入一個標簽為title、圖標為icon、提示為tip的選項卡。索引值從0開始 |
setTabPlacement(int tabPlacement) | 設置選項卡標簽的顯示位置 |
setTabLayoutPolicy(int tabLayoutPolicy) | 設置選項卡標簽的布局方式 |
setSelectedIndex(int index) | 設置指定索引位置的選項卡被選中 |
setEnabledAt(int index, boolean enabled) | 設置指定索引位置的選項卡是否可用。設為true表示可用,設為false則表示不可用 |
setDisabledIconAt(int index,Icon disabledIcon) | 為指定索引位置的選項卡設置不可用時顯示的圖標 |
getTabCount() | 獲得該選項卡面板擁有選項卡的數量 |
getSelectedIndex() | 獲得被選中選項卡的索引值 |
getTitleAt(int index) | 獲得指定索引位置的選項卡標簽 |
addChangeListener(ChangeListener 1) | 為選項卡面板添加捕獲被選中選項卡發生改變的事件 |
小例子:
final JTabbedPane tabbedPane = new JTabbedPane();
// 設置選項卡標簽的布局方式
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
// 獲得被選中選項卡的索引
int selectedIndex = tabbedPane.getSelectedIndex();
// 獲得指定索引的選項卡標簽
String title = tabbedPane.getTitleAt(selectedIndex);
System.out.println(title);
}
});
getContentPane().add(tabbedPane, BorderLayout.CENTER);
URL resource = ExampleFrame_02.class.getResource("/tab.JPG");
ImageIcon imageIcon = new ImageIcon(resource);
final JLabel tabLabelA = new JLabel();
tabbedPane.addTab("選項卡A", imageIcon, tabLabelA, "點擊查看選項卡A");
final JLabel tabLabelB = new JLabel();
tabbedPane.addTab("選項卡B", imageIcon, tabLabelB, "點擊查看選項卡B");
final JLabel tabLabelC = new JLabel();
tabbedPane.addTab("選項卡C", imageIcon, tabLabelC, "點擊查看選項卡C");
tabbedPane.setSelectedIndex(2); // 設置索引為2的選項卡被選中
tabbedPane.setEnabledAt(0, false); // 設置索引為0的選項卡不可用
歡迎關注我的公眾號:物聯網技術猿
我可以幫你免費下載csdn積分資料!!