1、分割面板

构造方法说明
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、选项卡面板

构造方法说明
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积分资料!!

01-06 08:33