Grafische Benutzeroberflächen – AWT und Swing

AWT und Swing sind die Komponenten in der Java Programmierung, die dem Programmierer helfen die entwickelte Software benutzerfreundlicher aussehen zu lassen. Diese beide Möglichkeiten unterscheiden sich aber grundlegend weshalb sie im folgendem erläutert werden.

Abstract Window Toolkit (AWT)

Das Abstract Window Toolkit, kurz AWT, ist die erste API von Sun welche eine plattformunabhängige Basis einer grafischen Programmierung unter Java bereitstellt. Die Entwicklungszeit betrug lediglich sechs Wochen. Man kann sagen, dass das Abstract Window Toolkit eine Art kleinster gemeinsamer Nenner aller zu unterstützenden Plattformen ist. AWT wird für Applikationen sowie für Widget-Erstellung eingesetzt. Durch die Bereitstellung von hunderten von Klassen und Methoden ist die gewünschte Oberfläche baukastenartig zusammenstellbar. Das Abstract Window Toolkit bietet jedoch nur Komponenten an, die auf jeder Plattform verfügbar sind, was wiederum das Angebot an Widgets einschränkt. Diese Komponenten werden auch als heavyweight components (schwergewichtige Komponenten) bezeichnet. So können zum Beispiel von dem Anwender bekannte Bedienelemente (Widgets) wie Schaltflächen, Menüs oder Eingabefelder verwendet werden. Sollen jedoch moderne grafische Elemente wie zum Beispiel ein Icon mit dem Abstract Window Toolkit erstellt werden, wird der Anwender enttäuscht. Obwohl das Window Toolkit heute wegen ihrer vielen Probleme und Schwächen überholt ist, bildet AWT mit einigen Klassen immer noch die Basis der JFC.

Swing

Wie bereits bei der Beschreibung von Abstract Window Toolkit dargelegt wurde, bietet AWT eine begrenzte Anzahl an Komponenten, welches die Entwickler schnell an die Grenzen dieser Klassenbibliothek stoßen ließ. Sun hat somit als Ergänzung mit dem Swing-Konzept eine Ablösung des Abstract Window Toolkit geschaffen. Swing greift nicht wie AWT auf die Komponenten des jeweiligen Betriebssystems zu, sondern auf Swing-Komponenten, welche seit der Version 1.2 vollständig in Java implementiert sind. Da Swing nicht von dem Betriebssystem abhängig ist, nutzt es sogenannte lightweight components (leichtgewichtige Komponenten). Eine kleine Beispielanwendung in die folgende Abbildung die Swing Oberfläche darstellt.

[ad#co-3]

Swing Oberfläche

Des Weiteren wird mit Swing eine einheitliche Benutzeroberfläche erstellt. Somit ist die äußerliche Erscheinung sowie der Bedienung jeder Anwendung auf unterschiedlichsten Betriebssystemen stets die gleiche. Vorher nicht vorhandene Realisierungsmöglichkeiten zum Erstellen verschiedener Komponenten, wie zum Beispiel Tabellen oder Bäume, sind nun möglich. Tatsächlich ist mit Swing eine sehr viel umfassendere und anspruchsvollere Menge an Dialogelemten zu realisieren. Natürlich hat Swing nicht nur Vorteile. Wenn beispielsweise eine Swing-Oberfläche im Webbrowser des Clients angezeigt werden soll, ist zunächst eine Installation des Java-Plugins notwendig. Bis heute gibt es immer noch keinen Browser mit eingebauter Swing-Unterstützung.