2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
19 mai 2013 à 19:28
19 mai 2013 à 19:28
J'avoue n'avoir jamais eu vraiment besoin de faire ce genre de choses, j'ai du le faire une fois "pour savoir" et en gros tu as quelque chose comme ça :
1) une classe MonEvent extends EventObject qui a définit un certains nombre de caractéristiques sur l'évènement que tu veux récupérer.
2) une interface MonEventListener extends EventListener qui définit les méthodes de traitements à opérer lorsque survient un évènement. Ces méthodes prennent en paramètres des objets MonEvent, par exemple : monEventOccured(MonEvent)
3) une classe MaClasse qui génère ces évènements, c'est à elle de traiter les évènement. Pour cela elle possède en particulier une méthode qui s'appelle généralement addMonEventListener (mais le nom n'est pas imposé) et qui prend en paramètre un objet MonEventListener.
Après tu gères les évènements comme tu veux, ça dépend beaucoup de leur nature, mais en gros tu auras quelque chose comme ça :
1) une classe MonEvent extends EventObject qui a définit un certains nombre de caractéristiques sur l'évènement que tu veux récupérer.
2) une interface MonEventListener extends EventListener qui définit les méthodes de traitements à opérer lorsque survient un évènement. Ces méthodes prennent en paramètres des objets MonEvent, par exemple : monEventOccured(MonEvent)
3) une classe MaClasse qui génère ces évènements, c'est à elle de traiter les évènement. Pour cela elle possède en particulier une méthode qui s'appelle généralement addMonEventListener (mais le nom n'est pas imposé) et qui prend en paramètre un objet MonEventListener.
Après tu gères les évènements comme tu veux, ça dépend beaucoup de leur nature, mais en gros tu auras quelque chose comme ça :
public MaClasse { private Collection<MonEventListener> mesEventListener; public void addMonEventListener(MonEventListener monEventListener) { mesEventListener.add(monEventListener); } private void monOperation() // provoque un évènement { MonEvent monEvent = new MonEvent(...); for (MonEventListener listener : mesEventListener) listener.monEventOccured(monEvent); } }