Mettre un écouteur sur un objet.

Mettre un écouteur sur un objet. - Java - Programmation

Marsh Posté le 15-02-2005 à 14:53:17    

Bonjour,
 
j'ai un objet de ma composition (tout simple qui étend object) je voulais savoir si c'est possible de lui attacher un écouteur pour qui si cet objet est modifié (cad un de ces champs change) il lance une fonction qui effectue un traitement.
 
merci

Reply

Marsh Posté le 15-02-2005 à 14:53:17   

Reply

Marsh Posté le 15-02-2005 à 15:04:03    

EpoK a écrit :

Bonjour,
 
j'ai un objet de ma composition (tout simple qui étend object) je voulais savoir si c'est possible de lui attacher un écouteur pour qui si cet objet est modifié (cad un de ces champs change) il lance une fonction qui effectue un traitement.
 
merci


 
Cela correspond à un pattern (ou même une norme): javabeans.
Il faut que tes setter soient implémentés comme ceci :
 

Code :
  1. protected PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this);
  2.     public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
  3.         propertyChangeSupport.addPropertyChangeListener(listener);
  4.     }
  5.     public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
  6.         propertyChangeSupport.removePropertyChangeListener(listener);
  7.     }
  8.     public void setCode(String code) {
  9.         String old = this.code;
  10.         this.code = code;
  11.         propertyChangeSupport.firePropertyChange("code", old, code);
  12.     }


 
Tu peux alors ajouter un listener sur la propriété qui t'intéresse pour suivre ses modifications.

Reply

Marsh Posté le 15-02-2005 à 15:28:13    

replix a écrit :


Tu peux alors ajouter un listener sur la propriété qui t'intéresse pour suivre ses modifications.


 
 
je comprend pas trop comment...

Reply

Marsh Posté le 15-02-2005 à 15:31:03    

cherche un peu de doc sur le design parrern observé/observateur


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 15-02-2005 à 16:34:15    

EpoK a écrit :

je comprend pas trop comment...


 
 
La classe qui écoute doit implémenter PropertyChangeListener et être ajoutée comme listener à l'objet observé.
 

Code :
  1. observe.addPropertyChangeListener(ecouteur);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed