Bonjour, je compte parmi les débutants de java, et après avoir cherché, je ne trouve pas mon erreur et ne comprends pas ce qui se produit, je m'explique:

je veux avoir une jframe contenant un jtabbedpane avec des onglets dynamiques, je crée le premier onglet avec un jpanel, et un 2° vide avec un "+" en titre.

j'implémente un ChangeListener sur mon jtabbedpane et lui demande, si l'util a cliqué sur l'onglet "+", d'insérer une nouvelle tab juste avant ce dernier onglet.

problème au lieu de m'insérer mon nouvel onglet, il me renomme le premier en "+" et plante.

Le plantage vient je pense du getTabCount(), je m'en sers pour insérer le nouvel onglet juste avant l'onglet "+". Au lancement il vaut 2, ce qui est normal car j'ai le 1er onglet et le "+", mais après l'évènement j'ai toujours le même nombre d'onglets, mais il vaut maintenant 1!!! J'ai bien peur de ne pas comprendre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
jTabbedPane1.addChangeListener(new ChangeListener()(
 
            public void stateChanged(ChangeEvent e) {
 
                //je place l'index juste avant le dernier onglet
                index = jTabbedPane1.getTabCount()-1;
 
                //si l'objet selectionne est le dernier
                if(jTabbedPane1.getTitleAt(index).equals("+")){
 
                    //on ajoute le nouvel onglet
                    JPanel jPanel2 = new JPanel();
                    jPanel2 = jPanel1;
                    String title = "Poule "+index;
                    jTabbedPane1.insertTab(title,null,jPanel2,null,index);
 
                   //je me positionne sur l'onglet fraichement crée
                    jTabbedPane1.setSelectedIndex(index);
                 }                     
            }
});

merci d'avance.