22

我有两个 JTabbedPane,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 测试 = 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]
       }
}

替代文字

4

5 回答 5

47

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

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

您可以通过使用 getter 方法使 jtp(最好使用更好的名称)成为私有属性来做到这一点,也可以将其作为构造函数参数传递给 ButtonHandler。

于 2010-11-11T17:46:00.460 回答
9

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

于 2010-11-11T17:34:47.593 回答
3

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

JTabbedpane.setSelectedIndex(); 

你的名字是什么 J Panel 用上面的 JTabbedpane 替换它,例如你想选择第一个选项卡只需将 0 放在括号中,如果你想选择第二个选项卡然后将 1 放在括号中,例如:我的 J 选项卡式窗格是称为 jtabbedpanel ,我想要第一个选项卡,然后该行将如下所示:

jtabbedpanel.setSelectedIndex(0);

希望这可以帮助!!

于 2016-12-05T04:46:59.517 回答
0

就像添加您的动作侦听器必须与您的选项卡在同一类中一样。

于 2013-04-23T14:04:44.353 回答
0

只是!和:

JTabbedPane.setSelectedComponnet(component);
于 2017-06-08T01:36:39.903 回答