Bonjour,
J'avait besoin de propager des évènements lorsqu'une propriété d'un bean était modifiée, j'ai donc étendu la classe 'java.beans.PropertyChangeSupport' et écris les code qui vas avec.
Mais je n'ai jamais vu apparaitre "Change" dans ma console. Aprés des centaines de cheveux perdus, et minutes passées à débugger j'ai modifie ma tactique.
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
23
24
25
26
27
28
29
30 public MaClasse extends PropertyChangeSuport { private MonObjet monObjet; public MaClasse() { super(this); monObjet = new MonObjet(); } ... public void modifieLeNom(){ String nom = monObjet.getNom(); monObjet.setNom("truc"); firePropertyChange("nom", nom, monObjet.getNom()) ; } ... } public MaClasseQuiEcoute { ... MaClasse mc = new MaClasse(); mc.addPropertyChangeListener(new InterenalPropertyChangeListener()); mc.modifieLeNom(); ... private class InternalPropertyChangeListener implments PropertyListener { public void propertyChange(PropertyChangeEvent evt){ System.out.println("Change"); } } }
et la, tout fonctionne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public MaClasse { protected final EventListenerList listeners = new EventListenerList(); ... String nom = monObjet.getNom(); monObjet.setNom("truc"); firePropertyChange("nom", nom, monObjet.getNom()) ; ... protected void firePropertyChange(....) { // le code qui vas bien (récupère les listeners, boucle et appelle la méthode) } }
Y à t'il une particularité de'PropertyChangeSupport' que je n'ai pas saisie et qui pourrais expliquer la chose ?
Merci
Partager