listener de modification [java] - Java - Programmation
Marsh Posté le 11-04-2005 à 18:44:12
Bonjour,
Voici une solution basique, sans Listener, mais qui ne convient que dans les cas simples.
Si l'instance de B est connue de A (par exemple créée par A ou passée en paramètre à A), il suffit :
(1) de créer dans A une méthode incrementeCompteur(int i) qui incrémente le compteur de i unités ;
(2) de toujours passer par cette méthode pour incrémenter le compteur (ne pas faire de "compteur += 1" ailleurs) ;
(3) dans cette méthode, de lancer une action sur B.
Nicolas
Marsh Posté le 11-04-2005 à 23:26:51
Une méthode plus pure :
Code :
|
Nicolas
Marsh Posté le 11-04-2005 à 23:29:40
je précise que ton exemple ne marche à partir de java1.5 (utilisation de l'autoboxing)
Marsh Posté le 12-04-2005 à 22:39:53
(1) Pour utiliser "directement et facilement" addPropertyChangeListener, ne faut-il pas que la classe écoutée dérive de JComponent et que l'on écoute des propriétés pré-établies ?
API de JComponent :
public void addPropertyChangeListener(PropertyChangeListener listener)Adds a PropertyChangeListener to the listener list. The listener is registered for all bound properties of this class, including the following: |
Cf. également ce tutoriel :
http://java.sun.com/docs/books/tut [...] tener.html
(2) Dans le cas général, en s'inspirant de :
http://forum.hardware.fr/forum2.ph [...] 90#t982255
et
http://www.imsc.res.in/Computer/lo [...] bound.html
on peut probablement proposer pour notre exemple le code suivant :
Code :
|
C'est tout de même un tout petit plus compliqué que Observer/Observable.
Mais tout dépend de ce que l'on veut faire...
Nicolas
Marsh Posté le 11-04-2005 à 13:48:56
Bonjour,
En fait j 'ai une classe A avec un attribut :
int compteur;
ce que j aimerais c est que lorsque la valeur de cet attribut compteur est modifié une seconde classe B reagisse et effectue certaines operations.
J'ai lu ce sujet qui semble etre mon probleme :
http://forum.hardware.fr/forum2.ph [...] 90#t982255
mais n'etant pas une tete en Java je n'ai pas trop compris la solution proposée.
Merci pour votre attention.
Cordialement, Pata.