Retirer dynamiquement des JLabel
Bonjour,
J'ai une fenêtre JFrame dans laquelle j'ai un JPanel principal degrade (pour utiliser un fond en couleur degradée), un JPanel pan qui contient des JLabel ajoutés dynamiquement en cliquant sur un bouton Ajouter, je veux aussi retirer le dernier JLabel ajouté en cliquant sur un bouton Supprimer, l'ajout se fait sans problème, mon code:
Code:
1 2 3 4 5 6 7 8 9 10
| //FAajoutee est une liste qu'on remplie au fure et à mesure que l'on rajoute des JLabel
for(int i=1;i<=FAajoutee.size();i++){
hashlabel.put(i, new JLabel());
pan.add(hashlabel.get(i));
hashlabel.get(i).setOpaque(true);
hashlabel.get(i).setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
hashlabel.get(i).setBackground(Color.WHITE);
hashlabel.get(i).setPreferredSize(dimlabel);
hashlabel.get(i).setText(" "+dialogue.getFile()+" ");
} |
Mais quand je veux retirer un JLabel en appuyant sur le bouton supprimer pour supprimer le dernier JLabel ajouté, il y a que le premier clique qui fonctionne bien, mon code:
Code:
1 2 3 4 5 6
| int p = FAajoutee.size();
pan.remove(hashlabel.get(p));
pan.revalidate()
hashlabel.remove(p);
FAajoutee.remove(p-1);
System.out.println(p); |
Chaque clique retire le dernier élèment de ma liste mais pas le JLabel, avez-vous une idée de la source de problème.