10 Stimmen

Wie funktioniert ein ActionListener?

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?

13voto

Joel Punkte 28220

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.

1voto

AlexR Punkte 111534

Es gibt eine Ereignisschleife, die im Kern von AWT implementiert ist. Sie empfängt alle Ereignisse und sendet sie an die entsprechenden Listener.

1voto

Harry Joy Punkte 57304

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X