Java选项卡(JTabbedPane)的使用

来源:互联网 发布:2016淘宝买家可以贷款 编辑:程序博客网 时间:2024/06/05 14:09

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 选项卡();

    }

}




1 0
原创粉丝点击