如何通过单击按钮切换jTabbedPane中的选项卡?

时间:2010-11-11 17:27:52

标签: java swing jtabbedpane

我有两个JTabbedPanes,JTabbedPane1& 2 如何在JTabbedPane2中按下按钮以显示JTabbedPane1?

以下是JTabbedPane的代码:

public class TabbedPane extends JFrame {

    public TabbedPane() {


        setTitle("Tabbed Pane");  
        setSize(300,300); 

        JTabbedPane jtp = new JTabbedPane();

       getContentPane().add(jtp);

       JPanel1 jp1 = new JPanel1();//This will create the first tab

       JPanel jp2 = new JPanel2();//This will create the second tab

       //add panel .........

    //example usage
     public static void main (String []args){
        TabbedPane tab = new TabbedPane();
    }

}

这是类JPane1:

...    JLabel label1 = new JLabel();
       label1.setText("This is Tab 1");
       jp1.add(label1);

和类Jpane2与int

上的按钮

JButton test = new JButton(“Press”);    jp2.add(测试);

ButtonHandler phandler = new ButtonHandler();
test.addActionListener(phandler);
setVisible(true); 

}  因此问题出现在Jpanel2上按钮的ActionListener中

class ButtonHandler implements ActionListener{
       public void actionPerformed(ActionEvent e){
              // what i do now ? to call  jpanel 1 show ![alt text][1]
       }
}

alt text

5 个答案:

答案 0 :(得分:40)

如果您使ButtonHandler可以访问选项卡式窗格,则可以执行以下操作:

class ButtonHandler implements ActionListener{
       public void actionPerformed(ActionEvent e){
              jtp.setSelectedIndex(0);
       }
}

您可以通过使用getter方法将jtp(理想情况下使用更好的名称)作为私有属性来实现,或者可以将其作为构造函数参数传递给ButtonHandler。

答案 1 :(得分:7)

您应该使用方法JTabbedPane.setSelectedIndex(int index)和所需选项卡的索引。

答案 2 :(得分:1)

非常简单:使用下面的代码:

JTabbedpane.setSelectedIndex(); 

你的名字是什么J面板用上面的JTabbedpane替换它,例如你想选择第一个标签简单地将0放在括号中,如果你想选择第二个标签然后将1放在括号中,例如:my J选项卡式窗格称为jtabbedpanel,我想要第一个选项卡,然后该行将显示为:

jtabbedpanel.setSelectedIndex(0);

希望这会有所帮助!!

答案 3 :(得分:0)

就像添加你的动作监听器必须与你的标签在同一个类中。

答案 4 :(得分:-1)

而已!用:

JTabbedPane.setSelectedComponnet(component);