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

2022-09-02 00:18:40

我有两个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(test);

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


答案 1

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

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

您可以通过使jtp(理想情况下具有更好的名称)成为具有getter方法的私有属性来执行此操作,也可以将其作为构造函数参数传递给ButtonHandler。


答案 2

应将该方法与所需选项卡的索引一起使用。JTabbedPane.setSelectedIndex(int index)


推荐