Een Java-evenement vertegenwoordigt een GUI-actie in de Swing GUI API van Java

Een evenement in Java is een object dat wordt gemaakt wanneer er iets verandert in 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 wordt naar de relevante gebeurtenislistener gestuurd (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:

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

Er zijn verschillende soorten evenementen en luisteraars in Java: elk type evenement is gekoppeld aan een overeenkomstige luisteraar. Laten we voor deze discussie een veelvoorkomend type gebeurtenis overwegen, 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 is gemaakt. Dit object bevat zowel informatie over de gebeurtenisbron als de specifieke actie die door de gebruiker is ondernomen. Dit gebeurtenisobject wordt vervolgens doorgegeven aan de bijbehorende ActionListener object methode:

  void actionPerformed (ActionEvent e)

Deze methode wordt uitgevoerd en retourneert de juiste GUI-reactie, bijvoorbeeld het openen of sluiten van een dialoogvenster, het downloaden van een bestand, het verstrekken van een digitale handtekening of andere ontelbare acties die beschikbaar zijn voor gebruikers in een interface.

Soorten evenementen

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

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