Bonjour à tous,
Au sein d'une classe Exemple, j'ai créé une sous-classe BoutonListener (réalisant ActionListener) sur un JButton "Bouton".
Quand l'utilisateur clique sur ce bouton, la classe BoutonListener est appelée et doit retirer un des composants d'un Container appelé c (attribut de la classe Exemple).
Ca fait quelque chose comme ça :
Or rien ne se passe quand on clique...
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 public class Exemple extends JFrame { private Container c ; public Exemple() { //le constructeur .... c = new Container() ; c = this.getContentPane() ; c.setLayout(new BorderLayout()) ; } public class BoutonListener implements ActionListener { public void ActionPerformed(ActionEvent e) { c.remove(0) ; System.out.println(c.getComponents().length) ; // permet de tester l'application de l'instruction précédente } } }
Il ne s'agit pas d'un problème d'affectation de Listener au bouton : on observe bien la décroissance du nombre de composants de c. Seulement, l'écran principal n'est pas mis à jour...
Pourtant, l'instruction c.remove(0) produit bien son effet hors listener (dans le programme principal).
J'imagine qu'on ne puisse pas si facilement le contenu d'un Container... Mais pourquoi ? Et comment contourner le problème ?
Merci d'avance![]()
Partager