Java分割面板和選項卡面板的應用


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積分資料!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM