Java Event Listener und wie sie funktionieren

Ein Ereignis-Listener in Java kann eine Art Ereignis verarbeiten - er "lauscht" auf ein Ereignis, z. B. einen Mausklick eines Benutzers oder einen Tastendruck, und reagiert dann entsprechend. Ein Ereignis-Listener muss mit einem Ereignisobjekt verbunden sein, das das Ereignis definiert.

Zum Beispiel grafische Komponenten wie a JButton oder JTextField sind bekannt als Ereignisquellen. Dies bedeutet, dass sie Ereignisse erzeugen können (genannt Ereignisobjekte), Wie die Bereitstellung eines JButton für einen Benutzer zum Klicken oder a JTextField in die ein Benutzer Text eingeben kann. Die Aufgabe des Ereignis-Listeners ist es, diese Ereignisse zu erfassen und etwas damit zu tun.

Funktionsweise von Ereignis-Listenern

Jede Ereignis-Listener-Schnittstelle enthält mindestens eine Methode, die von der entsprechenden Ereignisquelle verwendet wird.

Betrachten wir für diese Diskussion ein Mausereignis, d. H. Jedes Mal, wenn ein Benutzer mit einer Maus auf etwas klickt, das durch die Java-Klasse dargestellt wird MouseEvent. Um diese Art von Ereignis zu behandeln, müssen Sie zuerst eine erstellen MouseListener Klasse, die Java implementiert MouseListener Schnittstelle. Diese Schnittstelle hat fünf Methoden; Implementieren Sie die, die sich auf die Art der Mausaktion bezieht, die Ihr Benutzer voraussichtlich ausführen wird. Diese sind:

  • nichtig mouseClicked (MouseEvent e)

    Wird aufgerufen, wenn die Maustaste auf eine Komponente gedrückt und losgelassen wurde.
  • void mouseEntered (MouseEvent e)

    Wird aufgerufen, wenn die Maus eine Komponente betritt.
  • void mouseExited (MouseEvent e)

    Wird aufgerufen, wenn die Maus eine Komponente verlässt.
  • nichtig mousePressed (MouseEvent e)

    Wird aufgerufen, wenn eine Maustaste auf eine Komponente gedrückt wurde.
  • void mouseReleased (MouseEvent e)

    Wird aufgerufen, wenn eine Maustaste auf einer Komponente losgelassen wurde

Wie Sie sehen, hat jede Methode einen einzelnen Ereignisobjektparameter: das spezielle Mausereignis, für das sie entwickelt wurde. In deiner MouseListener Klasse, du registrieren um eines dieser Ereignisse zu "hören", damit Sie informiert werden, wenn sie auftreten.

Wenn das Ereignis ausgelöst wird (z. B. klickt der Benutzer mit der Maus gemäß der mouseClicked () Methode oben), eine relevante MouseEvent Das Objekt, das dieses Ereignis darstellt, wird erstellt und an das Objekt übergeben MouseListener Objekt registriert, um es zu erhalten. 

Arten von Ereignis-Listenern

Ereignis-Listener werden durch verschiedene Schnittstellen dargestellt, von denen jede ein gleichwertiges Ereignis verarbeiten soll.

Beachten Sie, dass Ereignis-Listener dahingehend flexibel sind, dass ein einzelner Listener registriert werden kann, um mehrere Ereignistypen "abzuhören". Dies bedeutet, dass für einen ähnlichen Satz von Komponenten, die denselben Aktionstyp ausführen, ein Ereignis-Listener alle Ereignisse verarbeiten kann.

Hier sind einige der häufigsten Typen:

  • ActionListener: Hört auf eine ActionEvent, wenn ein grafisches Element angeklickt wird, wie beispielsweise eine Schaltfläche oder ein Element in einer Liste.
  • ContainerListener: Hört gerne a ContainerEvent, Dies kann auftreten, wenn der Benutzer ein Objekt zur Benutzeroberfläche hinzufügt oder daraus entfernt.
  • KeyListener: Hört gerne a Schlüsselereignis in dem der Benutzer eine Taste drückt, tippt oder loslässt.
  • WindowListener: Hört gerne a WindowEvent, Zum Beispiel, wenn ein Fenster geschlossen, aktiviert oder deaktiviert wird.
  • MouseListener: Hört gerne a  MouseEvent, Zum Beispiel, wenn eine Maus geklickt oder gedrückt wird.