JAVA中使用选项卡,要用到JTabbledPane这个容器,现在就来说说这个容器的一些用法:
一:JTabbedPane构造函数:
JTabbedPane():建立一个空的JTabbedPane对象。
JTabbedPane(int tabPlacement):建立一个空的JTabbedPane对象,并指定摆放位置,其位置有四个,JTabbedPane.RIGHT,JTabbedPane.TOP,JTabbedPane..BOTTOM,JTabbedPane.LEFT,图如下:
二:JTabbedPane的事件处理:
JTabbedPane以处理ChangeEvent事件为主。每当在JTabbedpane选换标签时,都会产生ChangeEvent事件。因此要处理选换标签所
对应的操作,必须实现ChangeListener这个interface.另外JTabbedPane上的每个标签都有索引值(index),一般若没有加以设置
,索引置从左到右依次是0,1,2.....,依此类推,因此下例中,Picture的索引值为0,Label 2的索引值为1。
一个标签都有所对应的操作。
通过使用 addTab和 insertTab方法将选项卡/组件添加到 TabbedPane对象中。选项卡通过对应于添加位置的索引来表示,其中第一个选项卡的索引为 0,最后一个选项卡的索引为选项卡数减 1。
TabbedPane使用 SingleSelectionModel来表示选项卡索引集和当前所选择的索引。如果选项卡数大于 0,则总会有一个被选定的索引,此索引默认被初始化为第一个选项卡。如果选项卡数为 0,则所选择的索引为 -1。
具体例子:
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class JTablePaneAQ extends JFrame implements ChangeListener{
private JTabbedPane tablepane=null;//
int index=0;
public static void main(String[] args) {
JTablePaneAQ aq=new JTablePaneAQ();
}
public JTablePaneAQ()
{
tablepane=new JTabbedPane(JTabbedPane.TOP);
//
JPanel panel_1=new JPanel();
Button buttonwine=new Button("酒水");
panel_1.add(buttonwine);
buttonwine.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "这是酒水的选项卡。");
}
});
//第二个主食选项卡
JPanel panel_2=new JPanel();
Button buttonfood=new Button("主食");
panel_2.add(buttonfood);
buttonfood.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "这是主食的选项卡。");
}
});
/**
* 第三个香烟选项卡
*/
JPanel panel_3=new JPanel();
Button buttoncigerate=new Button("香烟");
panel_3.add(buttoncigerate);
buttoncigerate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "这是香烟的选项卡。");
}
});
/**
* 添加控件
*/
tablepane.add("酒水", panel_1);
tablepane.add("主食",panel_2);
tablepane.add("香烟",panel_3);
this.add(tablepane);
/**
* 设置主窗口属性
*/
this.setBounds(100, 200, 400, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
/**
* 实现ChangeListener方法,目的在使若左边的标签有点选过,右边的标签才会显示Enable状态。
* getSelectedIndex()方法可返回目前点选标签的index值,
* getTabCount()方法可返回JTabbedPane上目前共有几个标签,
* 而setEnabledAt()方法则是使某个标签
*的状态为Enable或Disable(true为Enable,false为Disable).
*/
@Override
public void stateChanged(ChangeEvent arg0) {
// TODO 自动生成的方法存根
if (index!=tablepane.getSelectedIndex()){
if(index<tablepane.getTabCount()-1)
tablepane.setEnabledAt(index+1,true);
}
index=tablepane.getSelectedIndex();
}
}