package zikao.swing;
import javax.swing.*;
public class JTabbedPanesTest {
/*
JTabbedPanes的构造方法:
JTabbedPanesTest(int tabPlacement,int tabLayoutPolicy)
tabPlacement: 指定标签标题的放置位置,可以选择SwingConstants中的四个常量:
TOP,LEFT,BOTTOM,RIGHT
tabLayoutPolicy: 指定当窗口不能容纳标签页标题时的布局设置,有两种:
JTabbedPanes.WRAP_TAB_LAYOUT 垂直排列
JTabbedPanes.SCROLL_TAB_LAYOUT 拥有滑动条
2,通过JTabbedPanes对象堆标签进行增删改查
addTab(String title, Icon icon, Component component,String tip): 添加标题
title:标签的名称
icon:标签的图表
component:标签对应的组件
tip: 光放到标签上的提示
insertTab(String title, Icon icon, Component component,String tip,int index):插入标签页
title:标签的名称
icon:标签的图表
component:标签对应的组件
tip: 光放到标签上的提示
index: 在那个索引处插入标签页
setComponentAt(int index,Component component):修改标签页对应组件
index: 修改那个索引处的标签
component: 标签对应组件
removeTabAt(int index):
index: 删除那个索引处的组件
3,设置当前显示的标签页
setSelectedIndex(int index): 设置那个索引处标签被选中
4,设置JTabbedPane的其他属性
setDisabledIconAt(int index,Icon disabledIcon): 将指定位置的禁用图标设置为icon,该图标
也可以是null表示不适用禁用图标.
setEnabledAt(int index,boolean enabled): 设置指定位置的标签页是否启动
setTitleAt(int index,String title): 设置指定位置标签页的标题为title,该标题可以为null
setToolTipTextAt(int index,String toolTipText): 设置指定位置标签页的提示文本
5,为JTabbedPane设置监听器
addChangeListener(ChangeListener I)
*/
JFrame jFrame = new JFrame("测试JTabbedPanes");
JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.LEFT, JTabbedPane.SCROLL_TAB_LAYOUT);
public void init() {
//添加标签
tabbedPane.addTab("用户管理", null, new JList<>(new String[]{"用户名一", "用户名二", "用户名三"}));
tabbedPane.addTab("商品管理", new JList<>(new String[]{"商品一", "商品二", "商品三"}));
tabbedPane.addTab("订单管理", null, new JList<>(new String[]{"订单一", "订单二", "订单三"}));
//完成设置
tabbedPane.setEnabledAt(0, false);
tabbedPane.setSelectedIndex(1);
tabbedPane.addChangeListener(e -> {
int selectedIndex = tabbedPane.getSelectedIndex();
JOptionPane.showMessageDialog(jFrame, "当前选中了第" + selectedIndex + "个标签");
});
jFrame.add(tabbedPane);
jFrame.setBounds(400, 400, 400, 400);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);
}
public static void main(String[] args) {
new JTabbedPanesTest().init();
}
}
效果图请看评论区B站视频连接