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.
Gebeurtenisafhandeling in Java bestaat uit twee belangrijke elementen:
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.
Hier zijn enkele van de meest voorkomende soorten evenementen in Java:
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).