JTabbedPane:调用其他类

时间:2017-04-12 14:52:03

标签: java jtabbedpane

问题在于:我构建了一个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

StartTab中的按钮

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。但这不适用于标签的多个类。

希望你能帮助我!我整天都在寻找解决方案......

1 个答案:

答案 0 :(得分:1)

您可以检索点击的ComponentJButton此处)的后续父母,直到找到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");
    }
});