JTabbedPane的使用

来源:互联网 发布:推塔网络游戏要网络吗 编辑:程序博客网 时间:2024/05/22 01:41

JTabbedPane构造函数:
JTabbedPane():建立一个空的JTabbedPane对象。
JTabbedPane(int tabPlacement):建立一个空的JTabbedPane对象,并指定摆放位置,如TOP,BOTTOM,LEFT,RIGHT.
JTabbedPane的事件处理模式:
  JTabbedPane以处理ChangeEvent事件为主。每当在JTabbedpane选换标签时,都会产生ChangeEvent事件。因此要处理选换标签所
对应的操作,必须实现ChangeListener这个interface.另外JTabbedPane上的每个标签都有索引值(index),一般若没有加以设置
,索引置从左到右依次是0,1,2.....,依此类推,因此下例中,Picture的索引值为0,Label 2的索引值为1。
一个标签都有所对应的操作。
例子: JTabbedPane2
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
    /*由于ChangeEvent是属于Swing的事件,而不是AWT的事件,因此import Swing的事件类来处理
     *ChangeEvent事件。
     */
import javax.swing.event.*;

public class JTabbedPane2 implements ActionListener,ChangeListener{
  int index=0;
  int newNumber=1;
  JTabbedPane tabbedPane=null;
  public JTabbedPane2(){
     JFrame f=new JFrame("JTabbedPane2");       
     Container contentPane=f.getContentPane();
    
     JLabel label1=new JLabel(new ImageIcon(".//icons//flower.jpg"));
     JPanel panel1=new JPanel();
     panel1.add(label1);
    
     JLabel label2=new JLabel("Label 2",JLabel.CENTER);
     label2.setBackground(Color.pink);
     label2.setOpaque(true);
     JPanel panel2=new JPanel();
     panel2.add(label2);
    
     JLabel label3=new JLabel("Label 3",JLabel.CENTER);
     label3.setBackground(Color.yellow);
     label3.setOpaque(true);
     JPanel panel3=new JPanel();
     panel3.add(label3);
    
     tabbedPane=new JTabbedPane();
     tabbedPane.setTabPlacement(JTabbedPane.TOP);//设置标签置放位置。
    /*由于ChangeEvent是属于Swing的事件,而不是AWT的事件,因此import Swing的事件类来处理
     *ChangeEvent事件。
     */
     tabbedPane.addChangeListener(this);
     tabbedPane.addTab("Picture",null,panel1,"图案");
     tabbedPane.addTab("Label 2",panel2);
     tabbedPane.addTab("Label 3",null,panel3,"label");
     tabbedPane.setEnabledAt(2,false);//设Label 3标签为Disable状态
     JButton b=new JButton("新增标签");
     b.addActionListener(this);
     contentPane.add(b,BorderLayout.SOUTH);
     contentPane.add(tabbedPane,BorderLayout.CENTER);
    
     f.pack();
     f.show();
     f.addWindowListener(new WindowAdapter(){
               public void WindowClosing(WindowEvent e){
                  System.exit(0);
               }
      });    
  }       
/*实现ChangeListener方法,目的在使若左边的标签有点选过,右边的标签才会显示Enable状态。getSelectedIndex()方法可返回
*目前点选标签的index值,getTabCount()方法可返回JTabbedPane上目前共有几个标签,而setEnabledAt()方法则是使某个标签
*的状态为Enable或Disable(true为Enable,false为Disable).
*/
  public void stateChanged(ChangeEvent e){
     if (index!=tabbedPane.getSelectedIndex()){
         if(index<tabbedPane.getTabCount()-1)
            tabbedPane.setEnabledAt(index+1,true);
     }
     index=tabbedPane.getSelectedIndex();
  }
/*实现ActionListener接口,当用户按下"新增标签"按钮时,就
*会在tabbedPane上新增一个Disable状态的标签。
*/
  public void actionPerformed(ActionEvent e){
      JPanel pane1=new JPanel();
      JLabel label4=new JLabel("new label"+newNumber,JLabel.CENTER);
      label4.setOpaque(true);
      pane1.add(label4);
      tabbedPane.addTab("new "+newNumber,pane1);
      tabbedPane.setEnabledAt(newNumber+2,false);
      newNumber++;
      tabbedPane.validate();
  }
  public static void main(String[] args){
    new JTabbedPane2();
  }

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 屁股上坐的发黑怎么办 车屁股撞了个洞怎么办 腰压迫的腿疼怎么办 肩胛提肌固定不住怎么办 胳膊粗后背肉多怎么办 2岁儿童 肋骨边缘外翻怎么办 5岁宝宝盆骨前倾怎么办 脖子弯了像驼背怎么办 都40周了还没生怎么办 股骨头坏死骨盆歪了怎么办 二胎侧切伤口疼怎么办 小月子盆骨酸痛怎么办 盆骨一边大一边小怎么办 快生了宫颈管长怎么办 想顺产 宫颈管长怎么办 腰和跨一样宽怎么办 脚后跟骨折手术后小腿变细怎么办 生完孩子骨盆错位怎么办 皮肤又黑又粗糙怎么办 翠研珠宝被坑了怎么办 领导是小人我该怎么办 微信二维码重置了怎么办 衣服有蝽的卵怎么办 人坐牢去了房贷怎么办 人死了欠的房贷怎么办 体育生文化没过怎么办 舍友偷了钱没证据怎么办 舍友要一直开空调怎么办 和大学室友相处不愉快怎么办 和舍友三观不合怎么办 室友欠200钱忘了怎么办 和舍友闹矛盾了怎么办 被宿舍人孤立了怎么办 分到一个爱管事的舍友怎么办 添加了村人名录怎么办 打csgo出现卡顿怎么办 csgo创意工坊下载慢怎么办 电脑全是英文死机了怎么办 亿盛国际出金后不到账怎么办 玩游戏的界面很大怎么办电脑 文件缺失导致电脑无法启动怎么办