PeterDAEHNEVersion3.11–13.05.2015
2. CréerleListenerquidéfinitlesnouveauxévénements(ildoitétendrel’interfacejava.util.EventListener).Sesméthodesserontlesnouveaux
événementsauxquelslecomposantseracapablederéagir.
/*Interfacedéfinissantlelistenerspécifique*/
publicinterfaceXXListenerextendsjava.util.EventListener{
voidevenement1(XXEvente);
/*...*/
voidevenementk(XXEvente);
}//XXListener
Lesévénementsevenement1,…,evenementkapparaîtrontdanslalistedesévénementsproposésparl’IDE.
SileListenerproposeplusieursévénements,créerleXXAdaptercorrespondant(cen’estpasobligatoire;ils’agitd’unebonnepratique).
3. Créerdanslecomposantlui‐mêmelesystèmed’abonnementetdedéclenchementdesévénementsnouvellementdéfinis.
/*Listedeslistenersabonnés*/
privatejava.util.ArrayList<XXListener>XXListenerList=newjava.util.ArrayList<XXListener>();
/*Enregistrementd'unlistenerdanslalistedesabonnés.*/
publicsynchronizedvoidaddXXListener(XXListenerlistener){
XXListenerList.add(listener);
}//addXXListener
/*Retraitd'unlistenerdelalistedesabonnés.*/
publicsynchronizedvoidremoveXXListener(XXListenerlistener){
XXListenerList.remove(listener);
}//removeXXListener
/*Notificationdesévénementsàtouslesabonnés.*/
@SuppressWarnings("unchecked")
privatevoidfireXXListenerEvenement1(XXEventevent){
java.util.ArrayList<XXListener>list=(java.util.ArrayList<XXListener>)XXListenerList.clone();
for(inti=0;i<list.size();i++){
list.get(i).evenement1(event);
}
}//fireXXListenerEvenement1