web-dev-qa-db-fra.com

Comment changer d'onglet dans jTabbedPane en cliquant sur un bouton?

J'ai deux JTabbedPanes, JTabbedPane1 & 2 Comment puis-je appuyer sur le bouton dans JTabbedPane2 pour afficher JTabbedPane1?

Voici le code de 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();
    }

}

voici la classe JPane1:

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

et classe Jpane2 avec bouton sur int

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

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

} donc le problème est ici dans ActionListener du bouton sur Jpanel2

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

alt text

19
tiendv

Si vous rendez le volet à onglets accessible à ButtonHandler, vous pouvez le faire:

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

Vous pouvez le faire en faisant de jtp (idéalement avec un meilleur nom) un attribut privé avec une méthode getter ou il peut être passé en argument constructeur à ButtonHandler.

40
Ventral

Vous devez utiliser la méthode JTabbedPane.setSelectedIndex(int index) avec l'index de l'onglet souhaité.

7
Guillaume

c'est très simple: utilisez le code ci-dessous:

JTabbedpane.setSelectedIndex(); 

quel que soit le nom de votre J Panel, remplacez-le par le JTabbedpane ci-dessus et par exemple, vous voulez sélectionner les premiers onglets, mettez simplement 0 entre parenthèses et si vous voulez sélectionner le deuxième onglet, mettez 1 entre parenthèses, par exemple: mon volet à onglets J est appelé jtabbedpanel et je veux le premier onglet alors la ligne ressemblera à:

jtabbedpanel.setSelectedIndex(0);

j'espère que cela t'aides!!

1
sidd

Tout comme pour ajouter que votre écouteur d'action doit être dans la même classe que vos onglets.

0
JohnnyQ