我有两个JTabbedPanes,JTabbedPane1& 2 如何在JTabbedPane2中按下按钮以显示JTabbedPane1?
以下是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:
... JLabel label1 = new JLabel();
label1.setText("This is Tab 1");
jp1.add(label1);
和类Jpane2与int
上的按钮JButton test = new JButton(“Press”); jp2.add(测试);
ButtonHandler phandler = new ButtonHandler();
test.addActionListener(phandler);
setVisible(true);
} 因此问题出现在Jpanel2上按钮的ActionListener中
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
// what i do now ? to call jpanel 1 show ![alt text][1]
}
}
答案 0 :(得分:40)
如果您使ButtonHandler可以访问选项卡式窗格,则可以执行以下操作:
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
jtp.setSelectedIndex(0);
}
}
您可以通过使用getter方法将jtp(理想情况下使用更好的名称)作为私有属性来实现,或者可以将其作为构造函数参数传递给ButtonHandler。
答案 1 :(得分:7)
您应该使用方法JTabbedPane.setSelectedIndex(int index)
和所需选项卡的索引。
答案 2 :(得分:1)
非常简单:使用下面的代码:
JTabbedpane.setSelectedIndex();
你的名字是什么J面板用上面的JTabbedpane替换它,例如你想选择第一个标签简单地将0放在括号中,如果你想选择第二个标签然后将1放在括号中,例如:my J选项卡式窗格称为jtabbedpanel,我想要第一个选项卡,然后该行将显示为:
jtabbedpanel.setSelectedIndex(0);
希望这会有所帮助!!
答案 3 :(得分:0)
就像添加你的动作监听器必须与你的标签在同一个类中。
答案 4 :(得分:-1)
而已!用:
JTabbedPane.setSelectedComponnet(component);