Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
BlueJ
Java
Sprachelemente
Abstrakte Datentypen
Swing
Composite Pattern
AWT > Swing
GUI-Grundstruktur
Farben und Fonts
Layout-Manager
Komponenten 1
Komponenten 2
Komponenten 3
Container
Observer Pattern
Ereignisverarbeitung
MVC-Pattern
Game Of Life
Threads
Aufgaben
Sortieren
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

Vom AWT nach Swing

Das AWT (Abstract Window Toolkit) ist so gestaltet, dass alle Fenster- und Dialogelemente vom darunterliegenden Betriebssystem zur Verfügung gestellt werden. Solche Komponenten werden als heavyweight ("schwergewichtig") bezeichnet. Sie sehen auf unterschiedlichen Betriebssystemen (z.B. Windows oder Linux) unterschiedlich aus. Außerdem kann das AWT nur diejenigen GUI-Elemente zur Verfügung stellen, die auf allen unterstützten Plattformen verfügbar sind.

Diese Nachteile haben dafür gesorgt, dass mit der Entwicklung von Swing ein anderer Weg eingeschlagen wurde. Fast alle Swing-Komponenten sind vollständig in Java geschrieben und werden als leightweight (leichtgewichtig) bezeichnet. Nur wenige Komponenten (z.B. Top-Level-Container) benutzen noch in minimalem Ausmaß plattform-spezifische GUI-Objekte. Form und Funktion sind somit nicht an das Betriebssystem gebunden, auf dem das Programm ausgeführt wird. Die Oberfläche kann plattformunabhängig vollständig selbst gestaltet und auch noch während der Laufzeit im Look and Feel verändert werden. Nicht zuletzt bietet Swing wesentlich mehr Möglichkeiten zur Oberflächengestaltung als das AWT. Allerdings ist Swing kein Ersatz sondern eine Erweiterung des AWT.

Die Abbildung zeigt die Hierarchie der wichtigsten AWT- und Swing-Klassen. Swing-Klassen sind mit grauem, AWT-Klassen mit weißem Hintergrund versehen.

Aufbau grafischer Oberflächen nach dem Composite Pattern

Der Aufbau einer grafischen Benutzeroberfläche (GUI - Graphical User Interface) für eine Applikation erfolgt nach einem einfachen hierarchischen Baukastenprinzip in dem wir das Composite Pattern wiederfinden werden. Aus einer Menge sogenannter (Grund-)Komponenten (= "Einfache Klassen"), von denen einige auch als Behälter (= "Zusammengesetzte Klassen") dienen können, wählt man sich Bausteine aus und kombiniert diese, indem man eine Container-Komponente mit weiteren Komponenten (die teilsweise selbst wieder Container sein können) bestückt. Die Rolle der abstrakten Oberklasse, von der jede Grafik-Klasse abgeleitet wird, nimmt die abstrakte Klasse Component ein.

Klassifizierung der GUI-Klassen

Beim Aufbau grafischer Oberflächen ist es selbstverständlich möglich, das Layout einschließlich der Farbgebungen selbst zu bestimmen bzw. anzupassen. Um ein GUI sinnvoll einzusetzen, ermöglicht es die so genannte Ereignisverarbeitung, auf Benutzereingaben reagieren zu können.

Die Klassen, die für die Erstellung grafischer Oberflächen von Bedeutung sind, lassen sich grob in vier Gruppen einteilen:

  • Die Gruppe der Grundkomponenten beinhaltet einfache Oberflächenelemente (Label, Button, Checkbox, ...).
  • Die Gruppe der Container besteht aus Komponenten, die selbst wieder Komponenten aufnehmen (JFrame, JWindow, JDialog, JMenuBar, JToolBar und auch JPanel)
  • Die Gruppe der Layout-Manager, Farben und Fonts setzt sich aus Klassen zusammen, deren Objekte für die Anordnung und die Gestaltung der einzelnen Komponenten zuständig sind.
  • Die Gruppe der Ereignisse und Listener enthält die Klassen, die für die Erzeugung und Verarbeitung von Ereignissen benötigt werden.

» drucken: pdf | html

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück