我有JTabbedPane
,其中有5个标签。我还在同一个JFrame
中添加了3个其他按钮,其中添加了JTabbedPane。我想让用户在单击特定按钮时移动到特定选项卡。这是图像示例
现在,例如,如果用户点击Button 1
,那么应该打开tab One
,同样在点击button 2
时,应该打开tab Two
,因此对于第三个。
这是我添加这些JTabbedPane和按钮的代码。
public class TabsAndButtons
{
public TabsAndButtons()
{
JTabbedPane tabsPane = new JTabbedPane();
tabsPane.add("One", new JPanel());
tabsPane.add("Two", new JPanel());
tabsPane.add("Three", new JPanel());
tabsPane.add("Four", new JPanel());
tabsPane.add("Five", new JPanel());
JPanel Panel = new JPanel();
Panel.add(tabsPane);
JButton Button1 = new JButton("Button 1");
Panel.add(Button1);
JButton Button2 = new JButton("Button 2");
Panel.add(Button2);
JButton Button3 = new JButton("Button 3");
Panel.add(Button3);
JFrame MainFrame = new JFrame("JTabbedPane and Buttons");
MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainFrame.getContentPane().add(Panel );
MainFrame.pack();
MainFrame.setVisible(true);
}
public static void main(String[] args)
{
java.awt.EventQueue.invokeLater(() -> {
new TabsAndButtons();
});
}
}
这种行动的实际目的非常冗长,并且有很多细节会使问题变得沉闷,所以我问的是我坚持的主要任务。感谢您的支持和时间。
答案 0 :(得分:2)
使用方法button.addActionListener() to execute code when a button is clicked. The code that you want to execute is probably
tabsPane。 setSelectedIndex(i)where
i`是您要显示的选项卡的索引。
您可能还想将JTabbedPane tabsPane
移动到成员变量中,或用final
标记它,以确保可以从动作侦听器中访问它。
答案 1 :(得分:2)
为每个按钮添加ActionListener
。然后在ActionListener中,您可以调用选项卡式窗格的setSelected(...)
方法。
阅读How to Write an ActionListener上Swing教程中的部分,了解更多信息和示例。
此外,变量名称不应以大写字符开头。
答案 2 :(得分:0)
在JTabbedPane上的方法setSelectedIndex(int index)
按钮的EventListener中尝试。
参考文献:http://docs.oracle.com/javase/7/docs/api/javax/swing/JTabbedPane.html#setSelectedIndex%28int%29