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

1、分割面板

JSplitPane類的常用構造方法
構造方法 說明
JSplitPane() 創(chuàng)建一個默認的分割面板。默認情況下為在水平方向上分割,重繪方式為只在調(diào)整分隔條位置完成時重繪
JSplitPane(int neworientation) 創(chuàng)建一個按照指定方向分割的分割面板。入口參數(shù)newOrientation的可選靜態(tài)JSplitPane(int newOrientation)常量有HORIZONTAL_SPLIT和VERTICAL_SPLIT
JSplitPane(int neworientation,boolean newContinuousLayout) 創(chuàng)建一個按照指定方向分割,并且按照指定方式重繪的分割面板。如果將入口參數(shù) newContinuousLayout設為true,表示在調(diào)整分隔條位置的過程中連續(xù)重繪,設為false則表示只在調(diào)整分隔條位置完成時重繪

重繪:重新繪制組件的布局方式。如果把 newContinuousLayout設為true,拖動分隔條的時候組件也會跟著動,如果是false,拖動的僅僅是分隔條(組件不會跟著動),待分隔條定下來時,組件才跟著定下來。如果既需要水平分割又要在垂直分割,可以在其中一個分割面板的兩個方向上再添加分割面板。小例子:

    // 創(chuàng)建一個水平方向的分割面板
    JSplitPane hSplitPane = new JSplitPane();
    // 分隔條左側的寬度為40像素
    hSplitPane.setDividerLocation(40);
    // 添加到指定區(qū)域
    getContentPane().add(hSplitPane, BorderLayout.CENTER);
    // 在水平面板左側添加一個標簽組件
    hSplitPane.setLeftComponent(new JLabel("左面板"));
    // 創(chuàng)建一個垂直方向的分割面板
    JSplitPane vSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
    // 分隔條上方的高度為30像素
    vSplitPane.setDividerLocation(30);
    vSplitPane.setDividerSize(8);// 分隔條的寬度為8像素
    vSplitPane.setOneTouchExpandable(true);// 提供UI小部件
    // 在調(diào)整分隔條位置時面板的重繪方式為連續(xù)繪制
    vSplitPane.setContinuousLayout(true);
    hSplitPane.setRightComponent(vSplitPane);// 添加到水平面板的右側
    // 在垂直面板上方添加一個標簽組件
    vSplitPane.setLeftComponent(new JLabel("上"));
    // 在垂直面板下方添加一個標簽組件
    vSplitPane.setRightComponent(new JLabel("下"));

在這里插入圖片描述

2、選項卡面板

表23.3JTabbedPane類的所有構造方法
構造方法 說明
JTabbedPane() 創(chuàng)建一個默認的選項卡面板。默認情況下標簽位于選項卡的上方,布局方式為限制布局
JTabbedPane(int tabPlacement) 創(chuàng)建一個指定標簽顯示位置的選項卡面板。入口參數(shù)tabPlacement的可選靜態(tài)常量可以TOP、BOTTOM、LEFT 和RIGHT
JTabbedPane(int tabPlacement,int tabLayoutPolicy) 創(chuàng)建一個既指定標簽顯示位置又指定選項卡布局方式的選項卡面板。入口參數(shù)tabLayoutPolicy的可選靜態(tài)常量可以是WRAP_TAB_LAYOUT(限制布局為默認值)和SCROLL_TAB_LAYOUT(滾動布局)

兩種布局方式是限制布局和滾動布局,限制布局中的選項卡面板可以隨著窗體的拖動做出合適的調(diào)整,滾動布局是窗體變小的時候會出現(xiàn)一個滾動條,可以點擊顯示被遮擋的選項卡。addTab()方法可以把所有入口參數(shù)都設置為空,即:

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() 獲得該選項卡面板擁有選項卡的數(shù)量
getSelectedIndex() 獲得被選中選項卡的索引值
getTitleAt(int index) 獲得指定索引位置的選項卡標簽
addChangeListener(ChangeListener 1) 為選項卡面板添加捕獲被選中選項卡發(fā)生改變的事件

小例子:

        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的選項卡不可用

在這里插入圖片描述

歡迎關注我的公眾號:物聯(lián)網(wǎng)技術猿
我可以幫你免費下載csdn積分資料!!

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容