Ich habe eine Idee, wie Action-Listener zu verwenden und Sie zu implementieren, aber ich wunderte mich, wenn jemand mir sagen könnte, wie Sie auf die Ereignisse hören? Gibt es eine Art von Polling-Mechanismus?
Antworten
Zu viele Anzeigen?Aktionszuhörer registrieren sich für Ereignisse mit der Beobachter-Muster und sie werden von der Hauptereignisschleife über alle Ereignisse informiert, für die sie registriert sind. Es handelt sich also nicht um einen Polling-Mechanismus (Pull), sondern um das Gegenteil - einen Callback (Push). Dies ist ein Beispiel für die Programmierung nach dem Motto "Rufen Sie uns nicht an, wir rufen Sie an". Da alles in Ihrem Code über einen einzigen Thread (die Ereignisschleife) läuft, müssen Sie sich nicht um die Synchronisierung zwischen verschiedenen Ereignissen kümmern - Ihr Code ist also thread-sicher.
Die Anleitung erklärt recht gut, wie sie funktionieren: http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
Ich denke, die UI-Implementierung des JComponent
wird alle registrierten Ereignisse auslösen (aufrufen), wenn der Benutzer mit ihr interagiert (denke ich).
Wenn ein Benutzer zum Beispiel auf eine JButton
wird die Schaltfläche (oder ihre Benutzeroberfläche, oder ein anderer interner Handler) alle registrierten ActionListeners
und rufen ihre actionPerformed(...)
Methoden.