bonjour à tous ,
voila
je voudrais créer mon Listener un peu comme MouseListener qui gère un clic sur une fenêtre c est tres important pour moi , c'est pour le côté technique prinicpalement .
pourriez vous m 'aider ?
bonjour à tous ,
voila
je voudrais créer mon Listener un peu comme MouseListener qui gère un clic sur une fenêtre c est tres important pour moi , c'est pour le côté technique prinicpalement .
pourriez vous m 'aider ?
il n'y a rien de compliqué coté technique, un listener c'est juste une interface. Tu enregistre quelque part dans ton objet les instances que l'on te file avec addXXXXXListener, et quand l'évènement à lieu, tu appelle la méthode de ton interface, pour chacun des instances:
et dans ton objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public interface MachinListener { public void machin(MachinEvent e); }
Après si t'es en swing dans un composant graphique, il y a AWTEventMultiCaster qui t'évite de jouer avec le stockage de l'event
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Set<MachinListener> listenersMachin; public void addMachinListener(MachinListener l){ listenersMachin.add(l); } private void fireMachin(MachinEvent e){ for (MachinListener l: listenersMachin){ l.machin(e); } }
https://docs.oracle.com/javase/8/doc...lticaster.html
j 'ai dumal à saisir , comment il fait la classe pour savoir si c est un clic ou non ?
les clics, c'est géré par l'os et interfacé directement par awt via les ClickEvent.
ok il faut les enregistrer dans une liste les listener apparement si j ai bien compris ce que tu me disait , mais pourquoi ?
C'est le fonctionnement de java qui est comme ca. Il aurait pu etre different mais c'est le choix qui a été fait. Il faut juste comprendre comment ca marche et, après, ca roule tout seul.
Si tu utilises AWT/Swing, il faut ajouter des listeners correpondant aux evenements qui t'interessent puis effectuer l'action qui va bien. Pour pouvoir en dire plus, il faudrait préciser ce que tu utilises comme techno et ce que tu veux faire plus précisément.
Partager