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 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
// Interface des écouteurs. Implémentent onMyMethod, qui est levé à chaque fois que "myMethod" est appelé sur une instance de MyClass.
interface MyClassListener {
void onMyMethode (MyClassEvent event);
}
// Paramètre passé lors de la levée d'un événement
class MyClassEvent extends EventObject{
MyClassEvent(Object source) {
super(source);
}
}
// Classe qui produit des événements
class MyClass {
private List<MyClassListener> listeners = new ArrayList<MyClassListener>();
// Ajoute un écouteur
void addMyClassListener (MyClassListener listener) {
listeners.add(listener);
}
// Supprime un écouteur
void removeMyClassListener(MyClassListener listener) {
listeners.remove(listener);
}
// Génère l'événement vers tous les écouteurs
private void fireOnMyMethod(MyClassEvent event) {
for (MyClassListener l:listeners) {
l.onMyMethod(event);
}
}
// Méthode qui est écoutée
public void myMethod() {
fireOnMyMethod(new MyClassEvent(this));
// work here....
}
}
merci pour votre aide. |
Partager