JTabbedPane是一种可以放多个面板的并且可以方便切换的容器
1. 构造函数
(1)JTabbedPane( ) 建立空的JTabbedPane对象,但实际它的默
认值为JTabbedPane.Top,也就是说卡片名将放在容器顶部。
(2)JTabbedPane(int tabPlacement) tabPlacement指定卡片名放
的位置,有四种位置:
JTabbedPane.TOP (放容器顶部)
JTabbedPane.BOTTOM(放容器底部)
JTabbedPane.LEFT(放容器左边)
JTabbedPane.RIGHT(放容器右)。
(3)JTabbedPane(int tabPlacement,int tabLayoutPolicy)
tabPlacement与上面是一样的作用, tabLayoutPolicy有两种
常量,分别是及其作用:
JTabbedPane.WRAP_TAB_LAYOUT
作用:设置窗口过小时,标签(卡名)将以滚动形式显示。
JTabbedPane.SCROLL_TAB_LAYOUT
作用:设置窗口过小时,增加一行,多余标签(卡名)将放在增加行。
2. 事件处理:
JTabbedPane每换标次签时,都会产生一个ChangeEvent事件
要换标签必须实现ChangeListener这个接口,该接口中有
void stateChanged(ChangeEvent e)方法,当侦听器(e)的目标已
更改其状态时调用。
每一个标签都有自己的索引,从左到右依次是0,1,2,3…
3. 几种方法介绍:
Component add(String title,Component component)
作用:添加具有指定名字(title)的组件(component)
void addChangeListener(ChangeListener l)
作用:添加事件监听器(ChangeListener的对象)
int getSelectedIndex()
作用:返回当前所选标签的索引
void setEnabledAt(int index,boolean enabled)
作用:设置是否启用 index位置的选项卡。
4. 例子:
// JPanel1.java
import javax.swing.*;
public class JPanel1 extends JPanel {
JLabel card1 = new JLabel("111");
JPanel1() {
this.add(card1);
}
}
// JPanel2.java
import javax.swing.*;
public class JPanel2 extends JPanel {
JLabel card2=new JLabel("222");
JPanel2(){
this.add(card2);
}
}
//选项卡.java
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class 选项卡 extends JFrameimplements ChangeListener {
JTabbedPane Tab=newJTabbedPane(JTabbedPane.TOP);
JPanel1 card1=new JPanel1();
JPanel2 card2=new JPanel2();
public void init(){
Tab.add("卡1",card1);
Tab.add("卡2",card2);
this.add(Tab,BorderLayout.CENTER);
Tab.addChangeListener(this);
}
选项卡(){
init();
this.setTitle("选项卡");
this.setBounds(200,200,400,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void stateChanged(ChangeEvent arg0) {
// TODO Auto-generatedmethod stub
if(Tab.getSelectedIndex()==0){
//getSelectedIndex()获取选项卡索引
Tab.setEnabledAt(0,true);
//设置启用索引为0的选项卡
}else if(Tab.getSelectedIndex()==1){
Tab.setEnabledAt(1,true);
}
}
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
new 选项卡();
}
}