类头
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) + " 个标签页: " );
}
});
}
}
运行结果如图