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 :
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
        }
    }
}
Or rien ne se passe quand on clique...
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