swing的JTabbedPane容器
使用JTabbedPane JTabbedPane可以很方便地在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器具有相同大小的组件摆放区域。通过这种方式,就可以在一个容器里放置更多组件,例如右击桌面上的“我的电脑”图标,在弹出的快捷菜单里单击“属性”菜单工页,就可以看到一个“系统属性”对话框,这个对话框里包含了若干个标签页
如何使用JTabbedPane对象在窗口创建标签页,步骤如下:
第一步:创建JTabbedPane对象
JTabbedPane(int tabplacement,int tabLayoutPolicy);
上面那个构造方法的参数如下:
1、tabPlacement:指定标签标题的放置位置,可以选择SwingConstants中的四个常量:TOP、LEFT、BOTTOM、RIGHT 2、tabLayoutPolicy:指定当窗口不能容纳标签页标题时的布局策略,可以选择JTabbedPane.WRAP_TAB_LAYOUT和JTabbedPane.SCROLL_TAB_LAYOUT
第二步:通过JTabbedPane对象堆标签进行增删改查
【例如添加标签页】
xxxxxxxxxx
addTab(String title,Icon icon,Component component,String tip);
上面那个构造方法的参数如下:
1、title:标签的名称 2、icon:标签的图标 3、component:标签对应的组件 4、tip:光标放在标签上的提示,即鼠标悬浮在标签处时显示的浅色提示信息
【例如插入标签页】
xxxxxxxxxx
insertTab(String title,Icon icon,Component component,String tip,int Index);
上面那个构造方法的参数如下:
1、title:标签的名称 2、icon:标签的图标 3、component:标签对应的组件 4、tip:光标放在标签上的提示 5、index:在哪个索引处插入标签页
【例如修改标签页对应的组件】
xxxxxxxxxx
setComponentAt(int index,Component component);
上面那个构造方法的参数如下:
1、index:修改哪个索引处的标签 2、component:标签对应的组件 3、removeTabAt(int index); 4、index:删除哪个索引处的标签
第三步:为JTabbedPane设置监听器
addChangeListener(ChangeListener l);
swing的JTabbedPane容器的练习
xxxxxxxxxx
package ch30;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class a_15_0swing_特殊容器_JTabbedPane {
JFrame jf = new JFrame("测试JTabbedPane");
//JTabbedPane参数:标签展示的位置,标签展示的策略
JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);
public void init(){
//组装视图
//添加标签。addTab参数:标签的名字、标签的图标(可不写这个参数)、当点击该标签时,会显示什么内容、提示信息(可不写这个参数)
tabbedPane.addTab("用户管理",new ImageIcon("src\\img\\exit.png"),new JList<String>(new String[]{"用户一","用户二","用户三"}));
tabbedPane.addTab("商品管理",new JList<String>(new String[]{"商品一","商品二","商品三"}));
tabbedPane.addTab("订单管理",new ImageIcon("src\\img\\copy.png"),new JList<String>(new String[]{"订单一","订单二","订单三","订单四"}));
//上面的标签的意思其实就是1级导航栏的意思
//setEnabledAt禁用0索引处的标签
tabbedPane.setEnabledAt(0,false);//如不想要禁用用户管理则把false改为true
//setSelectedIndex默认选中1索引处的标签
tabbedPane.setSelectedIndex(1);//默认选中的标签页是用户管理
//监听当前标签面板的选中情况
tabbedPane.addChangeListener(new ChangeListener() {//new ChangeListener()意思是new一个addChangeListener的实现类对象
public void stateChanged(ChangeEvent e) {
int selectedIndex = tabbedPane.getSelectedIndex();//获取用户点击的第一个标签的索引
JOptionPane.showMessageDialog(jf,"当前选中了第 "+(selectedIndex+1)+"个标签");
//上面那行是弹出一个对话框窗口,showMessageDialog的参数:父组件、对话框窗口弹出的内容
}
});
//把标签区域放到整个窗口的中间区域
jf.add(tabbedPane);
//设置窗口的位置和大小,即不可拖动窗口,不可放大缩小窗口
jf.setBounds(400,200,400,400);
//固定窗口大小
jf.setResizable(false);
//设置窗口可见,设置点击叉号就退出程序
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new a_15_0swing_特殊容器_JTabbedPane().init();
}
}