Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 23 - Grafikausgabe

## 23.1 Das Abstract Windowing Toolkit

- 23.1 Das Abstract Windowing Toolkit
  - 23.1.1 Grundlegende Eigenschaften
  - 23.1.2 Von AWT nach Swing
    - Änderungen mit dem JDK 1.1
    - Swing

### 23.1.1 Grundlegende Eigenschaften

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 seit dem JDK 1.0 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.

### 23.1.2 Von AWT nach Swing

#### Änderungen mit dem JDK 1.1

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. Es gab umfangreiche Fehlerbehebungen, 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. Es bezeichnet die Fähigkeit des AWT, GUI-Ereignisse an beliebige Objekte weiterzuleiten und dort zu behandeln. Obwohl das Verständnis für diese neuen Techniken etwas schwieriger zu erlangen ist als beim alten Event-Modell, lohnt sich der zusätzliche 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 28 detailliert auf das neue Paradigma eingehen. Wo erforderlich, werden einzelne Bestandteile bereits vorher informell eingeführt.

#### Swing

Neben dem AWT gibt es eine zweite Bibliothek für die Gestaltung grafischer Benutzeroberflächen. Sie heißt Swing, ist seit dem JDK 1.1 als Add-On verfügbar und seit der Version 1.2 fester Bestandteil des Java Development Kit. Da Swing-Anwendungen in ihren Möglichkeiten weit über das hinausgehen, was das AWT bietet, werden heute die meisten GUI-Programme mit Swing geschrieben. Wir beschreiben Swing ab Kapitel 35. Dennoch macht es Sinn, sich zunächst mit dem AWT zu beschäftigen.

Einerseits ist das AWT einfacher zu erlernen, denn es ist weniger umfangreich als Swing. Gerade als Anfänger muß man nicht so viele neue Konzepte erlernen. Zum anderen werden viele der AWT-Features auch in Swing benötigt, und das mühsam angeeignete Wissen ist nicht völlig verloren. Ob es um die Verwendung von Farben oder unterschiedlichen Schriftarten oder um die Anordnung von Dialogelementen mit Hilfe von Panels und Layout-Managern geht, die zugrunde liegenden Techniken sind in beiden Fällen gleich. Drittens gibt es auch heute noch Anwendungen für das AWT, etwa bei der Applet-Programmierung, oder wenn die Verwendung von plattformspezifischen Dialogelementen zwingend erforderlich ist.

|  |  |  | Leser, die dennoch ausschließlich Swing lernen wollen und das AWT als unnötigen Ballast ansehen, brauchen die Kapitel 30 und 32 lediglich kurz anzusehen. Das dazwischen liegende Kapitel 31 sollte dagegen nicht übersprungen werden, denn es beschreibt die Arbeitsweise und Anwendung der Layoutmanager. Die übrigen Kapitel in diesem Teil des Buchs behandeln Themen, die in beiden Welten von Bedeutung sind. |  |
Tip

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de