Een gebeurtenislistener in Java is ontworpen om een soort gebeurtenis te verwerken - deze "luistert" naar een gebeurtenis, zoals de muisklik van een gebruiker of een toetsaanslag, en reageert daarop. Een gebeurtenislistener moet verbonden zijn met een gebeurtenisobject dat de gebeurtenis definieert.
Bijvoorbeeld grafische componenten zoals een JButton of JTextField staan bekend als evenement bronnen. Dit betekent dat ze evenementen kunnen genereren (genaamd gebeurtenisobjecten), Zoals het verstrekken van een JButton voor een gebruiker om te klikken, of een JTextField waarin een gebruiker tekst kan invoeren. De taak van de luisteraar van het evenement is om die evenementen te vangen en er iets mee te doen.
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 een muis klikt, vertegenwoordigd door de Java-klasse 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)
void mouseEntered (MouseEvent e)
void mouseExited (MouseEvent e)
void mousePressed (MouseEvent e)
void mouseReleased (MouseEvent e)
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.
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 naar meerdere typen gebeurtenissen te 'luisteren'. 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: