类头

 public class JTabbedPane extends JComponent  implements Serializable, Accessible, SwingConstants{}

构造方法

  • public JTabbedPane() 创建一个空的 TabbedPane ,默认标签位置为 JTabbedPane.TOP
  • public JTabbedPane(int tabPlacement) 创建空 TabbedPane与任一指定的选项卡放置: JTabbedPane.TOP , JTabbedPane.BOTTOM , JTabbedPane.LEFT ,或 JTabbedPane.RIGHT 。
  • public JTabbedPane(int tabPlacement,int tabLayoutPolicy)创建一个空的TabbedPane与指定的选项卡布局和选项卡布局策略。标签布局策略可以是: JTabbedPane.WRAP_TAB_LAYOUT或JTabbedPane.SCROLL_TAB_LAYOUT 。

重要方法:(下面所指便签是面板)

//事件相关的方法

  • public void addChangeListener(ChangeListener l) 添加一个 ChangeListener为此tabbedpane。

  • public void removeChangeListener(ChangeListener l) 从此 ChangeListener中移除ChangeListener。

//与标签位置相关的方法

  • public int getTabPlacement() 返回此标签页窗格的标签页的位置。 对应的:public void setTabPlacement(int tabPlacement) 设置此标签页窗格的标签位置。 可能的值是JTabbedPane.TOP ,JTabbedPane.BOTTOM , JTabbedPane.LEFT,JTabbedPane.RIGHT 。默认值(如果未设置)为SwingConstants.TOP 。

//与当前选择标签相关的方法

  • public int getSelectedIndex() 返回此选项卡窗格的当前选择的索引。 如果没有当前选择的选项卡,则返回-1。

  • public void setSelectedIndex(int index) 设置此选项卡窗格的所选索引。 索引必须是有效的选项卡索引或-1,表示不应选择任何选项卡(也可以在标签页窗格中没有选项卡时使用)。 如果在tabbedpane包含一个或多个选项卡时指定了-1值,则结果将被实现定义。

  • public Component getSelectedComponent() 返回此选项卡窗格当前选定的组件。 如果没有当前选择的选项卡,则返回null 。

  • public void setSelectedComponent(Component c) 设置此选项卡窗格的选定组件。 这将自动将selectedIndex设置为与selectedIndex对应的索引。

//与增加标签相关的方法

  • public void insertTab(String title,Icon icon,Component component, String tip, int index) 在给定的索引上插入给定组件的新选项卡,由给定的标题和/或图标表示,其中任一个可能为 null 。
    title - 标签上显示的标题
    icon - 要在标签上显示的图标
    component - 单击此选项卡时要显示的组件。
    tip - 要为此选项卡显示的工具提示
    index - 插入新标签的位置( > 0 and <= getTabCount() )
    注意:对应的有addTab方法
    public void addTab(String title, Icon icon, Component component, String tip)
    而且此方法的参数一个依此1个2个3个到最多的4个

//与删除标签相关的方法

  • public void removeTabAt(int index) 删除index位置的标签 。 该组件其可见性将重置为true,以确保在添加到其他容器时可见。 即此时删除的标签只是取消关联,并不删除组件

  • public void remove(Component component) 删除指定的Component从JTabbedPane 。 如果component为null,该方法不执行任何操作。 结果组件不复存在。对应的有public void remove(int index)

  • public void removeAll() 从 tabbedpane删除所有选项卡及其相应的 tabbedpane 。

//与选项卡数目有关的方法

  • public int getTabCount() 返回此 tabbedpane中的选项卡数。

  • public int getTabRunCount()返回当前用于显示选项卡的选项卡运行次数。

//背景色和前景色

  • public Color getBackgroundAt(int index) 返回标签背景颜色 index 。

  • public Color getForegroundAt(int index) 返回标签前景色为 index 。

  • public void setBackgroundAt(int index, Color background) 在设置背景颜色index到background可以是null ,在这种情况下选项卡的背景色默认为背景颜色tabbedpane 。 如果该索引中没有选项卡,则会引发内部异常。

  • public void setForegroundAt(int index, Color foreground) 将前景色设置为index至foreground ,可以为null ,…

//与所选标签是否可用的方法

  • public void setEnabledAt(int index,boolean enabled) 设置是否启用index的选项卡。 如果该索引中没有选项卡,则会引发内部异常。
    参数
    index - 应该启用/禁用的选项卡索引
    enabled - 是否应启用该选项卡

  • public void setComponentAt(int index, Component component) 将组件设置为component至index 。 如果该索引中没有选项卡,则会引发内部异常。
    参数
    index - 要放置此组件的选项卡索引
    component - 选项卡的组件

设置快捷键

  • public void setMnemonicAt(int tabIndex, int mnemonic)
    参数
    tabIndex - 助记符所指的标签的索引
    mnemonic - 表示助记符的关键代码

//设置标签页名字的字体

  • setFont(font)

实例

package com.layoutPackage;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.KeyEvent;

public class JTabPanel {
    JFrame jFrame = new JFrame("JTabPanel Demo");
    Container contentPane;
    JTabbedPane jTabbedPane;
    int jPanelLabNum = 6;

    //加于jTabbedPane的五张面板
    JPanel[] jPanels = new JPanel[5];

    public static void main(String[] args) {
        JTabPanel jTabPanel = new JTabPanel();
        jTabPanel.go();
    }

    public void go(){
        contentPane = jFrame.getContentPane();
        jTabbedPane = new JTabbedPane(JTabbedPane.TOP);
        contentPane.add(jTabbedPane);

        designPanel();

        jFrame.setDefaultCloseOperation(3);
        jFrame.setVisible(true);
        jFrame.setBounds(500, 50, 700, 550);
    }

    protected void designPanel(){
        //创建面板
        jPanels[0] = new JPanel();
        jPanels[1] = new JPanel();
        jPanels[2] = new JPanel();
        jPanels[3] = new JPanel();
        jPanels[4] = new JPanel();

        //设置面板的背景色
        jPanels[0].setBackground(Color.RED);
        jPanels[1].setBackground(Color.BLUE);
        jPanels[2].setBackground(Color.GREEN);
        jPanels[3].setBackground(Color.YELLOW);
        jPanels[4].setBackground(Color.CYAN);

        //将面板加入jTabbedPanel中
        jTabbedPane.add("Panel 1", jPanels[0]);
        jTabbedPane.add("Panel 2", jPanels[1]);
        jTabbedPane.add("Panel 3", jPanels[2]);
        jTabbedPane.add("Panel 4", jPanels[3]);
        jTabbedPane.add("Panel 5", jPanels[4]);
        jTabbedPane.add("Lable 1", new JLabel("This is a  1 Lable"));
        Font font = new Font("华文彩云", Font.BOLD, 15);

        //设置标签页名字的字体
        jTabbedPane.setFont(font);

        //设置标签也对应的快捷键
        jTabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
        jTabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
        jTabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
        jTabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
        jTabbedPane.setMnemonicAt(4, KeyEvent.VK_5);
        jTabbedPane.setMnemonicAt(5, KeyEvent.VK_6);

        //设置不可选中的标签页
        jTabbedPane.setEnabledAt(2, false); //设置3个标签页不可选

        //设置标签页的背景色
        jTabbedPane.setBackground(Color.BLACK);
        
        //设置标签页的前景色
        jTabbedPane.setForegroundAt(0, Color.RED);
        jTabbedPane.setForegroundAt(1, Color.BLUE);
        jTabbedPane.setForegroundAt(2, Color.GREEN);
        jTabbedPane.setForegroundAt(3, Color.YELLOW);
        jTabbedPane.setForegroundAt(4, Color.CYAN);
        jTabbedPane.setForegroundAt(5, null);
        
        //设置标签面板的changeListener,注册事件
        jTabbedPane.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                System.out.println("这是第:" + (jTabbedPane.getSelectedIndex() + 1) + "  个标签页: " );
            }
        });
    
    }
}

运行结果如图
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐