Java-evenementen en hoe ze werken met gebeurtenisluisteraars

Een evenement in Java is een object dat wordt gemaakt wanneer er iets verandert binnen een grafische gebruikersinterface. Als een gebruiker op een knop klikt, op een keuzelijst klikt of tekens in een tekstveld, enz. Typt, wordt een gebeurtenis geactiveerd en wordt het relevante gebeurtenisobject gemaakt. Dit gedrag maakt deel uit van Java's Event Handling-mechanisme en is opgenomen in de Swing GUI-bibliotheek.

Laten we bijvoorbeeld zeggen dat we een hebben JButton. Als een gebruiker op klikt JButton, er wordt een knopklikgebeurtenis geactiveerd, de gebeurtenis wordt gemaakt en naar de relevante verzonden gebeurtenis luisteraar (in dit geval de ActionListener). De relevante luisteraar heeft code geïmplementeerd die bepaalt welke actie moet worden ondernomen wanneer de gebeurtenis plaatsvindt.

Merk op dat een gebeurtenisbron moet worden gekoppeld aan een gebeurtenislistener, of het activeren ervan leidt tot geen actie.

Hoe evenementen werken

Gebeurtenisafhandeling in Java bestaat uit twee belangrijke elementen:

instagram viewer
  • De bron van het evenement, wat een object is dat wordt gemaakt wanneer een gebeurtenis plaatsvindt. Java biedt verschillende soorten van deze gebeurtenisbronnen, die in de sectie worden besproken Soorten evenementen hieronder.
  • De event-luisteraar, het object dat "luistert" naar gebeurtenissen en deze verwerkt wanneer ze zich voordoen.

Er zijn verschillende soorten gebeurtenissen en luisteraars in Java: elk type gebeurtenis is gekoppeld aan een bijbehorende luisteraar. Laten we voor deze discussie eens kijken naar een veelvoorkomend type evenement, een actie-evenement vertegenwoordigd door de Java-klasse ActionEvent, die wordt geactiveerd wanneer een gebruiker op een knop of het item van een lijst klikt.

Op actie van de gebruiker, een ActionEvent object dat overeenkomt met de relevante actie wordt gemaakt. Dit object bevat zowel de informatie over de gebeurtenisbron als de specifieke actie die door de gebruiker is ondernomen. Dit gebeurtenisobject wordt vervolgens doorgegeven aan het bijbehorende ActionListener methode van het object:

 void actionPerformed (ActionEvent e)

Deze methode wordt uitgevoerd en retourneert de juiste GUI-reactie, die kan zijn om een ​​dialoogvenster te openen of te sluiten, download een bestand, geef een digitale handtekening of een van de vele andere acties die beschikbaar zijn voor gebruikers in een koppel.

Soorten evenementen

Hier zijn enkele van de meest voorkomende soorten evenementen in Java:

  • ActionEvent: Geeft aan dat op een grafisch element is geklikt, zoals een knop of item in een lijst. Verwante luisteraar: ActionListener.
  • ContainerEvent: Vertegenwoordigt een gebeurtenis die zich voordoet in de GUI-container zelf, bijvoorbeeld als een gebruiker een object toevoegt aan of verwijdert uit de interface. Verwante luisteraar: ContainerListener.
  • Sleutelmoment: Vertegenwoordigt een gebeurtenis waarbij de gebruiker een toets indrukt, typt of loslaat. Verwante luisteraar: KeyListener.
  • WindowEvent: Vertegenwoordigt een gebeurtenis met betrekking tot een venster, bijvoorbeeld wanneer een venster wordt gesloten, geactiveerd of gedeactiveerd. Verwante luisteraar: WindowListener.
  • MouseEvent: Vertegenwoordigt elke gebeurtenis met betrekking tot een muis, bijvoorbeeld wanneer er op een muis wordt geklikt of erop wordt gedrukt. Verwante luisteraar: MouseListener.

Merk op dat meerdere luisteraars en gebeurtenisbronnen met elkaar kunnen communiceren. Meerdere gebeurtenissen kunnen bijvoorbeeld door één enkele luisteraar worden geregistreerd, als ze van hetzelfde type zijn. Dit betekent dat voor een vergelijkbare set componenten die hetzelfde type actie uitvoeren, één gebeurtenislistener alle gebeurtenissen kan verwerken. Evenzo kan een enkele gebeurtenis aan meerdere luisteraars worden gebonden, als dat past bij het ontwerp van het programma (hoewel dat minder gebruikelijk is).

instagram story viewer