2010-11-11 4 views
16

Ich habe zwei JTabbedPanes, JTabbedPane1 Wie kann ich Knopf in JTabbedPane2 drücken, um JTabbedPane1 anzuzeigen? HierWie können Sie Tabs in jTabbedPane durch Klicken auf eine Schaltfläche wechseln?

ist der Code für 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(); 
    } 

} 

hier ist Klasse JPane1:

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

und Klasse Jpane2 mit Taste auf int

JButton test = new JButton ("Presse"); jp2.add (Test);

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

} so ist ein Problem hier in Action der Taste auf jPanel2

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

alt text

Antwort

37

Wenn Sie das Registerteilfenster zugänglich ButtonHandler machen können Sie dies tun:

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

Sie können dies tun jtp, indem sie (im Idealfall mit einem besseren Namen) ein eigenes Attribut mit einer Getter-Methode oder es kann sein, als Konstruktor-Argument an ButtonHandler übergeben.

+0

groß: D Ich habe gerade den Index vergessen. – gumuruh

7

Sie die Methode JTabbedPane.setSelectedIndex(int index) mit dem Index der Registerkarte Sie verwenden sollten.

0

Fügen Sie einfach hinzu, dass Ihr Aktionslistener in der gleichen Klasse wie Ihre Tabs sein muss.

1

seine ganz einfach: den Code unten verwenden:

JTabbedpane.setSelectedIndex(); 

was auch immer der Name Sie ist J-Panel ersetzen Sie es mit dem oben JTabbedPane und zum Beispiel möchten, dass Sie die ersten Laschen einfach 0 in Klammer gesetzt wählen und wenn Sie möchten, dann die zweite Registerkarte auszuwählen setzen 1 in Klammer zB: mein J Registerteilfenster jtabbedpanel aufgerufen wird, und ich möchte die erste Registerkarte dann wird die Linie aussehen wie:

jtabbedpanel.setSelectedIndex(0); 

hoffe, das hilft !!

-1

Nur! Mit:

JTabbedPane.setSelectedComponnet(component); 
+1

** Aus Review-Warteschlange: ** Darf ich Sie bitten, bitte etwas mehr Kontext um Ihre Antwort hinzuzufügen. Nur-Code-Antworten sind schwer zu verstehen. Es wird sowohl dem Fragesteller als auch zukünftigen Lesern helfen, wenn Sie in Ihrem Beitrag weitere Informationen hinzufügen können. Siehe auch [Vollständig Code-basierte Antworten erläutern] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers). –

Verwandte Themen