2010-11-11 92 views
16

我有两个JTabbedPanes,JTabbedPane1 如何按下JTabbedPane2中的按钮来显示JTabbedPane1?如何通过单击按钮切换jTabbedPane中的选项卡?

这里是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:对INT

JButton的测试=新的JButton( “新闻”

... JLabel label1 = new JLabel(); 
     label1.setText("This is Tab 1"); 
     jp1.add(label1); 

和类Jpane2与按钮); jp2.add(test);

ButtonHandler phandler = new ButtonHandler(); 
test.addActionListener(phandler); 
setVisible(true); 

} 这样的问题是在这里按钮的ActionListener在Jpanel2

class ButtonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       // what i do now ? to call jpanel 1 show ![alt text][1] 
     } 
} 

alt text

回答

37

如果使标签面板访问ButtonHandler你可以这样做:

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

您可以通过JTP(最好有一个更好的名字)的私人属性与getter方法做到这一点,也可以是作为构造函数参数传递给ButtonHandler。

+0

伟大:D我只是忘记了索引。 – gumuruh 2017-12-12 02:10:31

7

您应该使用方法JTabbedPane.setSelectedIndex(int index)你想要的选项卡的索引。

0

就像添加你的动作监听器必须与你的选项卡在同一个类中。

1

它很简单:使用下面的代码:

JTabbedpane.setSelectedIndex(); 

有史以来的名字是你什么Ĵ面板与上述JTabbedPane的更换和比如你要选择的第一个选项卡只需在支架放0如果要选择,然后第二个选项卡把1支架如:我Ĵ标签面板被称为jtabbedpanel,我想第一个选项卡,然后行会看:

jtabbedpanel.setSelectedIndex(0); 

希望这有助于!

-1

只是!随着:

JTabbedPane.setSelectedComponnet(component); 
+1

**来自审核队列:**我可以请求您请您在答案中添加更多的上下文。仅有代码的答案很难理解。如果您可以在帖子中添加更多信息,它可以帮助提问者和未来的读者。另请参阅[完全解释基于代码的答案](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)。 – 2017-06-08 18:00:06

相关问题