问题在于:我构建了一个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。但这不适用于标签的多个类。
希望你能帮助我!我整天都在寻找解决方案......答案 0 :(得分:1)
您可以检索点击的Component
(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");
}
});