14.1 Das Abstract Windowing Toolkit
Im Gegensatz zu den meisten anderen Programmiersprachen wurde Java
von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber
einfach zu bedienendes System für die Gestaltung grafischer Oberflächen
zur Verfügung zu stellen. Das Resultat dieser Bemühungen
steht als Grafikbibliothek unter dem Namen Abstract Windowing Toolkit
(AWT) zur Verfügung.
Die Fähigkeiten des AWT lassen sich grob in vier Gruppen unterteilen:
- Grafische Primitivoperationen zum Zeichnen von Linien oder Füllen
von Flächen und zur Ausgabe von Text
- Methoden zur Steuerung des Programmablaufs auf der Basis von Nachrichten
für Tastatur-, Maus- und Fensterereignisse
- Dialogelemente zur Kommunikation mit dem Anwender und Funktionen
zum portablen Design von Dialogboxen
- Fortgeschrittenere Grafikfunktionen zur Darstellung und Manipulation
von Bitmaps und zur Ausgabe von Sound
Da die grafischen Fähigkeiten Bestandteil der Sprache bzw. ihrer
Klassenbibliothek sind, können sie als portabel angesehen werden.
Unabhängig von der Zielplattform wird ein GUI-basiertes Programm
auf allen verwendeten Systemen gleich oder zumindest ähnlich
laufen.
Die Entwicklung von grafikorientierten Anwendungen im JDK 1.0 war
zwar relativ einfach und erzeugte portable Programme mit grafischer
Oberfläche, war aber durch eine Reihe von Fehlern und Restriktionen
des AWT eingeschränkt. Vor allem bei der Erstellung großer
GUI-Anwendungen wurden die Programme schnell unübersichtlich,
und die Performance litt unter dem unzulänglichen Event-Modell
der Version 1.0. Mit der Version 1.1 des JDK hat Sun das AWT massiv
verändert. Tiefgreifende Bugfixings wurden vorgenommen, und eine
Vielzahl von Methodennamen wurde geändert. Vor allem aber wurde
das Event-Handling, also der Transfer von GUI-Ereignissen, komplett
überarbeitet. |
 |
|
 |
Das neue Schlagwort lautet Delegation Based Event Handling
und meint die Fähigkeit des AWT, GUI-Ereignisse auch an Nicht-Komponenten
weiterzuleiten und dort zu behandeln. Obwohl das Verständnis
für diese neuen Techniken deutlich schwieriger zu erlangen ist
als beim alten Event-Modell, lohnt sich der Aufwand. Die Entwicklung
großer GUI-Anwendungen mit einer klaren Trennung zwischen Benutzeroberfläche
und Applikationslogik wird so erst möglich gemacht. Wir werden
in Kapitel 18 detailliert
auf das neue Paradigma eingehen. Wo erforderlich, werden einzelne
Bestandteile bereits vorher informell eingeführt.