Java Event-luisteraars verwerken gebruikersactiviteit in een GUI

Een event listener in Java is ontworpen om een ​​soort gebeurtenis te verwerken - het "luistert" naar een gebeurtenis, zoals de muisklik van een gebruiker of een toetsaanslag, en reageert vervolgens dienovereenkomstig. Een gebeurtenislistener moet zijn verbonden met een gebeurtenisobject dat de gebeurtenis definieert.

Bijvoorbeeld grafische componenten zoals een JButton of JTextField staan ​​bekend als gebeurtenisbronnen. Dit betekent dat ze gebeurtenissen kunnen genereren (genaamd gebeurtenisobjecten), zoals het verstrekken van een JButton voor een gebruiker om op te klikken, of een JTextField waarin een gebruiker tekst kan invoeren. Het is de taak van de luisteraar om die gebeurtenissen op te vangen en er iets mee te doen.

Hoe gebeurtenisluisteraars werken

Elke gebeurtenislistener-interface bevat ten minste één methode die wordt gebruikt door de equivalente gebeurtenisbron.

Laten we voor deze discussie een muisgebeurtenis overwegen, d.w.z. elke keer dat een gebruiker op iets klikt met een muis, vertegenwoordigd door de Java-klasse

instagram viewer
MouseEvent. Om dit soort gebeurtenis af te handelen, zou u eerst een MouseListener klasse die de Java implementeert MouseListener koppel. Deze interface heeft vijf methoden; implementeer degene die betrekking heeft op het type muisactie dat u van uw gebruiker verwacht. Dit zijn:

  • void mouseClicked (MouseEvent e)

    Wordt opgeroepen wanneer op een muisklik op een component is geklikt (ingedrukt en losgelaten).
  • void mouseEntered (MouseEvent e)

    Wordt opgeroepen wanneer de muis een component invoert.
  • void mouseExited (MouseEvent e)

    Wordt opgeroepen wanneer de muis een component verlaat.
  • void mousePressed (MouseEvent e)

    Wordt opgeroepen wanneer op een component op een muisknop is gedrukt.
  • void mouseReleased (MouseEvent e)

    Wordt opgeroepen wanneer een muisknop op een component is losgelaten

Zoals u ziet, heeft elke methode een enkele parameter voor een gebeurtenisobject: de specifieke muisgebeurtenis waarvoor deze is ontworpen. In uw MouseListener klas, jij registreren om naar deze gebeurtenissen te 'luisteren', zodat u op de hoogte wordt gebracht wanneer ze zich voordoen.

Wanneer de gebeurtenis wordt geactiveerd (bijvoorbeeld, klikt de gebruiker op de muis, volgens de mouseClicked () methode hierboven), een relevante MouseEvent object dat die gebeurtenis vertegenwoordigt, wordt gemaakt en doorgegeven aan de MouseListener object geregistreerd om het te ontvangen.

Soorten gebeurtenisluisteraars

Luisteraars van evenementen worden vertegenwoordigd door verschillende interfaces, die elk zijn ontworpen om een ​​gelijkwaardige gebeurtenis te verwerken.

Houd er rekening mee dat gebeurtenisluisteraars flexibel zijn doordat een enkele luisteraar kan worden geregistreerd om te "luisteren" naar meerdere soorten gebeurtenissen. Dit betekent dat voor een vergelijkbare set componenten die hetzelfde type actie uitvoeren, één gebeurtenislistener alle gebeurtenissen kan verwerken.

Hier zijn enkele van de meest voorkomende typen:

  • ActionListener: Luistert naar een ActionEvent, d.w.z. wanneer op een grafisch element wordt geklikt, zoals een knop of item in een lijst.
  • ContainerListener: Luistert naar een ContainerEvent, wat kan gebeuren als de gebruiker een object toevoegt of verwijdert uit de interface.
  • KeyListener: Luistert naar een Sleutelmoment waarin de gebruiker een toets indrukt, typt of loslaat.
  • WindowListener: Luistert naar een WindowEventbijvoorbeeld wanneer een venster wordt gesloten, geactiveerd of gedeactiveerd.
  • MouseListener: Luistert naar een MouseEvent, bijvoorbeeld wanneer op een muis wordt geklikt of gedrukt.
instagram story viewer