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.
Partager