Zur Erstellung grafischer Oberflächen ist es
notwendig, die Interna der Kommunikation
zwischen den einzelnen Komponenten zu kennen. Diese Kommunikation wird in Java
durch das so genannte Event-Handling realisiert.
Immer, wenn ein Benutzer eines Java-Applets oder einer
Java-Applikation eine Eingabe mittels
Tastatur oder Maus vornimmt, wird ein Objekt
erzeugt, das alle Informationen über das aufgetretene
Ereignis enthält.
Für das Event-Handling unterstützte die erste Version des JDK, die Version 1.0, lediglich ein hierarchisches Konzept, bei dem ein ausgelöstes Ereignis durch die Hierarchie der Komponenten läuft, bis eine Komponente das Ereignis verarbeitet.
Dieses Vorgehen hat folgende Nachteile:
- Die Komponentenhierarchie bestimmt gleichzeitig den Ereignisfluss,
indem Ereignisse nur jeweils an die in der Hierarchie höherliegenden
Komponenten weitergegeben werden konnten.
- Ereignisse, die häufig ausgelöst und in keiner Komponente verarbeitet
werden, wirken sich negativ auf die Performance aus. Das Extrembeispiel
stellt das »Mouse-Move-Event« (Bewegen des Mauszeigers) dar.
Alle »Mouse-Move-Events« werden zunächst an
die Komponente geleitet, in der sie erzeugt werden. Anschließend werden sie in
der Hierarchie weiter nach oben gereicht, bis sie entweder verarbeitet oder
schließlich bei der Wurzel der Komponentenhierarchie verworfen werden.
Ab dem JDK 1.1 wurde deshalb ein anderen Weg beschritten. Einen nicht unwesentlichen
Einfluss auf die Einführung des neuen Event-Modells hatte die Entwicklung
der Komponenten-Architektur Java Beans. Die Verknüpfung von Komponenten
zu einer Anwendung ist mit dem Event-Modell des JDK 1.0 nicht ohne weiteres möglich.
Deshalb war zu diesem Zweck die Einführung eines neuen Modells notwendig, das es ermöglicht, Objekte unabhängig von ihrer Position in der Komponentenhierarchie miteinander über Ereignisse kommunizieren zu lassen.
Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.