Event-Handling in Java: Was ist das und wie funktioniert es?

Veröffentlicht: 2020-03-21

Jedes Programm, das eine grafische Benutzeroberfläche oder GUI-basiert ist, einschließlich Java-Anwendung für Windows, wird von Ereignissen gesteuert. Damit ein Programm wie eine Java-Anwendung nützlich ist, muss es eine Antwort auf Befehle oder Eingaben des Benutzers liefern. Java-Anwendungen haben Ereignisse, um Benutzeraktionen zu erfassen. Bevor wir uns mit der Ereignisbehandlung in Java befassen, beginnen wir mit der Diskussion von Ereignissen.

Inhaltsverzeichnis

Was ist ein Ereignis?

Ereignisse haben in jeder Programmiersprache die gleiche Bedeutung und Wichtigkeit. Sie sind externe Effekte, die vom Benutzer gesteuert werden und dafür sorgen, dass sich Ihre Anwendung gemäß der vordefinierten Bedingung verhält, die eingerichtet wurde, um ihre Reaktion auf verschiedene Benutzeraktionen aufzuzeichnen. Ein Ereignis könnte sogar als ein Objekt bezeichnet werden, das zum Leben erweckt wird, wenn eine Änderung innerhalb der GUI stattfindet.

Beispiele für Ereignisse in Java sind das Eintippen von Zeichen oder Text, das Klicken auf ein Kombinationsfeld, das Klicken auf eine Schaltfläche oder jede andere Aktion seitens des Benutzers. Jede solche Aktion löst ein Ereignis aus, das dann zur Erstellung des Ereignisobjekts führt, das für dieses Ereignis relevant ist.

Wenn ein Benutzer beispielsweise Daten eingibt (Benutzeraktion, die ein Ereignis auslöst), erzeugt die Anwendung eine Ausgabe, indem sie ein Dialogfeld ausgibt oder Informationen anzeigt (Ereignisobjekt). Diese ereignisbezogenen Verhaltensweisen sind Teil des Event-Handling-Mechanismus von Java und in der Swing-GUI-Bibliothek vorhanden. Es ist wichtig zu beachten, dass die Quelle jedes Ereignisses und der Ereignis-Listener verknüpft sein müssen. Ist dies nicht der Fall, führt das Auslösen eines Ereignisses zu keiner Aktion.

Warum muss ein Programm oder eine Anwendung ereignisgesteuert sein?

Bevor Ereignisbehandlung ins Spiel kam, musste ein Programm alle Benutzerinformationen selbst sammeln, um zu wissen, was es zu einem bestimmten Zeitpunkt tat. Das bedeutet, dass sich ein Programm, nachdem es ausgeführt oder initialisiert wurde, immer in einer großen Wiederholungsschleife befand, die darauf wartete, dass der Benutzer etwas tut.

Das Programm suchte also nach einer beliebigen Aktion – vom Knopfdruck bis zur Schiebereglerbewegung. Nachdem es erfahren hat, dass auf Seiten des Benutzers etwas passiert ist, hat es sich darauf vorbereitet, die entsprechende Antwort zu liefern. Dies wird als Abfrage bezeichnet. Obwohl Umfragen die Arbeit erledigen, wirkt es meistens als zu unhandlich und zeitaufwändig.

Lesen Sie: Fragen und Antworten zu Interviews mit Java-Entwicklern

Wenn wir erwägen, es für moderne Anwendungen zu verwenden, entspricht es nicht wirklich den Anforderungen. Zwei Hauptgründe machen Polling für moderne Anwendungen ungeeignet – Polling platziert den gesamten ereignisbezogenen Code in der großen Wiederholungsschleife, und die Interaktionen, die an diesem Ort stattfinden, sind zu komplex. Außerdem führt das Polling dazu, dass ein Programm in eine Endlosschleife eintritt, was zur Erschöpfung von CPU-Zyklen führt, ohne dass eine Aktion vom Benutzer garantiert wird.

Das Abstract Window Toolkit oder AWT ist vorangegangen und hat eine Verbindung zu einem anderen Arbeitsmodell hergestellt, um das oben diskutierte Problem zu lösen. Dieses neue Modell ist ereignisgesteuerte Programmierung. Mit AWT muss das Programm nicht nach benutzergenerierten Ereignissen Ausschau halten. Es ist die Java-Laufzeit, die diese Aufgabe übernimmt. Es kündigt das Programm an, sobald eine Veranstaltung stattfindet. Es bewahrt eine wertvolle Ressource vor Erschöpfung und handhabt die Benutzerinteraktion besser.

Was sind Event-Handler in Java und wie funktionieren sie?

Lassen Sie uns nun das Hauptthema besprechen, mit dem wir uns befassen wollten. Wie funktioniert die Ereignisbehandlung in Java?

Wie bereits erwähnt, sind Ereignisse Benutzeraktionen oder externe Effekte, die bewirken, dass sich eine Anwendung auf eine bestimmte Weise verhält. In Java sind AWT-Komponenten, einschließlich Textfeld, Schaltfläche und andere, für die Generierung von Ereignissen verantwortlich. Sobald ein Ereignis generiert wird, behandelt der Listener es und führt die entsprechende Aktion aus.

Die Ereignisbehandlung in Java besteht aus vier Elementen. Diese könnten sogar als Event-Handler bezeichnet werden.

1. Ereignisquelle : Eine Ereignisquelle, die ein Ereignis generiert, ist meistens eine AWT-Komponente. Sie können den Befehl java.awt.component ausführen , um mehr über Komponenten zu erfahren, die möglicherweise eine Rolle bei der Generierung von Ereignissen spielen oder nicht. Die Komponenten sind die Unterklasse der ursprünglichen Quellklasse. Ereignisquellen können alles sein, von Textfeldern und Kombinationsfeldern bis hin zu Schaltflächen und mehr.

Lesen Sie: MVC-Architektur in Java

2. Ereignisklassen : In Java sind dies Klassen, die fast alle Komponenten ausmachen, die irgendetwas mit der Generierung von Ereignissen zu tun haben. Diese werden auch Ereignistypen genannt. Hier sind einige der häufigsten Ereignisklassen:

  • ActionEvent : Diese Ereignisklasse oder dieser Ereignistyp stellt ein Ereignis dar, das das Klicken auf ein grafisches Element wie eine Schaltfläche oder ein Listenelement beinhaltet. Der Listener für diese Klasse ist ActionListener.
  • KeyEvent : Diese Ereignisklasse stellt ein Ereignis dar, das das Drücken und Loslassen einer Taste beinhaltet. Der dieser Klasse zugeordnete Listener ist KeyListener.
  • ContainerEvent : Dieser Ereignistyp stellt ein Ereignis dar, das mit dem GUI-Container auftritt. Diese Klasse ist jedem Ereignis zugeordnet, bei dem eine Benutzeraktion das Hinzufügen oder Entfernen von Objekten aus der GUI beinhaltet. Der zugehörige Listener für diese Klasse ist ContainerListener.
  • MouseEvent : Diese Klasse repräsentiert all jene Ereignisse, die das Klicken oder Drücken der Maus beinhalten. Der Listener für diese Klasse ist MouseListener.
  • WindowEvent : Diese Ereignisklasse oder dieser Ereignistyp stellt Ereignisse dar, die eine beliebige Aktion im Zusammenhang mit einem Fenster beinhalten. Das Schließen, Aktivieren oder Deaktivieren eines Fensters fällt unter diese Klasse. Der zugehörige Listener für diese Klasse ist WindowListener.

3. Ereignis-Listener : Dies sind Java-Schnittstellen, die verschiedene Methoden bereitstellen, die in verschiedenen implementierten Klassen verwendet werden können. Die Aufgabe von Ereignis-Listenern besteht darin, Ereignisse zu überwachen und sie dann entsprechend zu verarbeiten, wenn sie stattfinden. Fast jede Komponente in Java hat einen dedizierten Listener, der jedes Ereignis verarbeitet, das diese Komponente generiert. ActionListener verarbeitet Ereignisse, die Listen, Schaltflächen, Textfelder und Menüs betreffen.

4. Ereignisadapter : Wenn ein Programm zu viele abstrakte Methoden enthält, die der Listener überschreiben kann, kann es schwierig werden, es zu kompilieren. Wenn wir beispielsweise einen Frame schließen möchten, müssen sieben abstrakte WindowListener-Methoden überschrieben werden. Um die Komplexität und den Programmieraufwand zu reduzieren, verfügt Java über Ereignisadapter. Ereignisadapter sind bereits überschriebene abstrakte Methoden.

Fazit

Es ist wichtig, sich daran zu erinnern, dass mehrere Ereignisquellen und Listener miteinander interagieren können. So können mehrere Ereignisse, die zur selben Klasse gehören, von einem einzigen Listener verarbeitet werden. Dies bedeutet, dass ein Listener alle Ereignisse verarbeiten kann, die dieselben Komponenten betreffen, die ähnliche Aktionen ausführen. Auf ähnliche Weise könnte ein einzelnes Ereignis nur dann von mehr als einem Zuhörer behandelt werden, wenn das Design des Programms dies zulässt.

Macht Sinn?

Jawohl?

Nein?

Setzen Sie sich mit uns in Verbindung, um mehr über eine ausführliche Sitzung zur Ereignisbehandlung in Java zu erfahren. Sie würden es nicht bereuen!

Wenn Sie mehr über Java für die Webentwicklung erfahren möchten, schauen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training, mehr als 9 Projekte und Aufgaben bietet. IIIT-B-Alumni-Status, praktische, praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Landen Sie in Ihrem Traumjob

UPGRAD UND IIIT-BANGALORES PG-DIPLOM IN SOFTWAREENTWICKLUNG
Erfahren Sie mehr