Java JTabbedPane:来自其他类的调用选项卡

Java JTabbedPane:来自其他类的调用选项卡,java,jtabbedpane,Java,Jtabbedpane,这就是问题所在:我构建了一个JTappedPane应用程序。对于每个选项卡,我都创建了一个单独的类: 大型机 public MainFrame () { StartTab startTab = new StartTab(); KundeTab kundeTab = new KundeTab(); ProjektTab projektTab = new ProjektTab(); StimmzettelTab stimmzettelTab = new Stimmze

这就是问题所在:我构建了一个JTappedPane应用程序。对于每个选项卡,我都创建了一个单独的类:

大型机

public MainFrame () {
    StartTab startTab = new StartTab();
    KundeTab kundeTab = new KundeTab();
    ProjektTab projektTab = new ProjektTab();
    StimmzettelTab stimmzettelTab = new StimmzettelTab();
    ExportTab exportTab = new ExportTab();

    JTabbedPane jtp = new JTabbedPane();
    jtp.addTab("xxx",startTab);
    jtp.addTab("xxx",kundeTab);
    jtp.addTab("xxx",projektTab);
    jtp.addTab("xxx",stimmzettelTab);
    jtp.addTab("xxx",exportTab);

    frame.getContentPane().add(jtp);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
现在我想用StartTab中的一个按钮来调用KundeTab

开始选项卡中的按钮

button1.addActionListener(new ActionListener() {  
    public void actionPerformed (ActionEvent s) {
      s.getActionCommand();

      // How can i switch to Tab xy?

      System.out.println("Switch Tab");
    }
});
在我的第一个JTappedPane项目中,我完全在一个类中构建gui。在这种情况下,我可以使用jtp。setSelectedIndex(int)和选项卡的int。但这不适用于选项卡的多个类


希望你能帮助我!我整天都在寻找解决办法

您可以检索单击的
组件的后续父级(此处为
JButton
),直到找到
JTabbedPane

button1.addActionListener(new ActionListener() {
    public void actionPerformed(final ActionEvent s) {
        s.getActionCommand();

        Component source = (Component) s.getSource();

        Container parent = source.getParent();// will give the container of the button

        do {

            parent = parent.getParent();

        } while (!(parent instanceof JTabbedPane));

        JTabbedPane tabbedPane = (JTabbedPane)parent;

        // How can i switch to Tab xy?
        tabbedPane.setSelectedIndex(xyIndex);

        System.out.println("Switch Tab");
    }
});