Computerwissenschaften

Java-Ereignisse und ihre Funktionsweise mit Ereignis-Listenern

Ein Ereignis in Java ist ein Objekt, das erstellt wird, wenn sich innerhalb einer grafischen Benutzeroberfläche etwas ändert. Wenn ein Benutzer auf eine Schaltfläche klickt, auf ein Kombinationsfeld klickt oder Zeichen in ein Textfeld usw. eingibt, wird ein Ereignis ausgelöst und das entsprechende Ereignisobjekt erstellt. Dieses Verhalten ist Teil des Java-Mechanismus zur Ereignisbehandlung und in der Swing-GUI-Bibliothek enthalten.

Nehmen wir zum Beispiel an, wir haben einen JButton . Wenn ein Benutzer auf den  JButton klickt, wird  ein Schaltflächenklickereignis ausgelöst, das Ereignis wird erstellt und an den entsprechenden Ereignis-Listener (in diesem Fall den ActionListener ) gesendet . Der relevante Listener verfügt über Code, der die Aktion festlegt, die zum Zeitpunkt des Ereignisses ausgeführt werden soll.

Beachten Sie, dass eine Ereignisquelle mit einem Ereignis-Listener gekoppelt sein muss, da sonst ihre Auslösung zu keiner Aktion führt.

 

Wie Ereignisse funktionieren

Die Ereignisbehandlung in Java besteht aus zwei Schlüsselelementen:

  • Die Ereignisquelle , bei der es sich um ein Objekt handelt, das beim Eintreten eines Ereignisses erstellt wird. Java bietet verschiedene Arten dieser Ereignisquellen, die im folgenden Abschnitt Arten von Ereignissen erläutert werden.
  • Der Ereignis-Listener , das Objekt, das Ereignisse „abhört“ und verarbeitet, wenn sie auftreten.

In Java gibt es verschiedene Arten von Ereignissen und Listenern: Jeder Ereignistyp ist an einen entsprechenden Listener gebunden. Betrachten wir für diese Diskussion einen allgemeinen Ereignistyp, ein Aktionsereignis, das von der Java-Klasse ActionEvent dargestellt wird und ausgelöst wird, wenn ein Benutzer auf eine Schaltfläche oder das Element einer Liste klickt.

Bei der Aktion des Benutzers wird ein ActionEvent- Objekt erstellt, das der entsprechenden Aktion entspricht. Dieses Objekt enthält sowohl die Ereignisquelleninformationen als auch die vom Benutzer durchgeführten spezifischen Aktionen. Dieses Ereignisobjekt wird dann an die Methode des entsprechenden ActionListener- Objekts übergeben:

 Void actionPerformed (ActionEvent e)

Diese Methode wird ausgeführt und gibt die entsprechende GUI-Antwort zurück, die darin bestehen kann, einen Dialog zu öffnen oder zu schließen, eine Datei herunterzuladen, eine digitale Signatur bereitzustellen oder eine der unzähligen Aktionen, die Benutzern in einer Benutzeroberfläche zur Verfügung stehen.

 

Arten von Ereignissen

Hier sind einige der häufigsten Arten von Ereignissen in Java:

  • ActionEvent : Stellt ein grafisches Element dar, auf das geklickt wird, z. B. eine Schaltfläche oder ein Element in einer Liste. Verwandter Listener:  ActionListener.
  • ContainerEvent : Stellt ein Ereignis dar, das im Container der GUI selbst auftritt, z. B. wenn ein Benutzer ein Objekt zur Schnittstelle hinzufügt oder daraus entfernt. Verwandter Listener:  ContainerListener.
  • KeyEvent : Stellt ein Ereignis dar, bei dem der Benutzer eine Taste drückt, eingibt oder loslässt. Verwandter Listener:  KeyListener.
  • WindowEvent : Stellt ein Ereignis dar, das sich auf ein Fenster bezieht, z. B. wenn ein Fenster geschlossen, aktiviert oder deaktiviert wird. Verwandter Listener:  WindowListener.
  • MouseEvent : Stellt jedes Ereignis dar, das sich auf eine Maus bezieht, z. B. wenn eine Maus angeklickt oder gedrückt wird. Verwandte Listener:  MouseListener.

Beachten Sie, dass mehrere Listener und Ereignisquellen miteinander interagieren können. Beispielsweise können mehrere Ereignisse von einem einzelnen Listener registriert werden, wenn sie vom gleichen Typ sind. Dies bedeutet, dass für einen ähnlichen Satz von Komponenten, die dieselbe Art von Aktion ausführen, ein Ereignis-Listener alle Ereignisse verarbeiten kann. In ähnlicher Weise kann ein einzelnes Ereignis an mehrere Listener gebunden werden, wenn dies zum Design des Programms passt (obwohl dies weniger häufig ist).

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.