Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Handbuch der Java-Programmierung
 <<    <     >    >>  Kapitel 27 - Fenster

27.1 Die verschiedenen Fensterklassen



Das Abstract Windowing Toolkit von Java enthält verschiedene Fensterklassen, die über eine gemeinsame Vererbungshierarchie miteinander in Verbindung stehen (siehe Abbildung 27.1). Oberste Fensterklasse ist Component, daraus wurde Container abgeleitet. Container ist die Oberklasse der beiden Klassen Window und Panel. Während Window sich in die Unterklassen Frame und Dialog verzweigt, wird aus Panel die Klasse Applet abgeleitet. Unterhalb von Dialog gibt es noch den Standard-File-Dialog in der Klasse FileDialog.

Abbildung 27.1: Hierarchie der Fensterklassen

Component ist eine abstrakte Klasse, deren Aufgabe darin besteht, ein Programmelement zu repräsentieren, das eine Größe und Position hat und das in der Lage ist, eine Vielzahl von Ereignissen zu senden und auf diese zu reagieren. In den folgenden Abschnitten werden wir einige ihrer Eigenschaften vorstellen.

Container ist ebenfalls eine abstrakte Klasse. Sie ist dafür zuständig, innerhalb einer Komponente andere Komponenten aufzunehmen. Container stellt Methoden zur Verfügung, um Komponenten hinzuzufügen oder sie zu entfernen, und realisiert in Zusammenarbeit mit den LayoutManager-Klassen die Positionierung und Anordnung der Komponenten. Container und Component bilden zusammen ein Composite-Pattern, wie es in Abschnitt 10.3.7 beschrieben wurde. Weitere Informationen zur Klasse Container finden sich in Abschnitt 31.1 bei der Beschreibung von Dialogen und Layoutmanagern.

Panel ist die einfachste konkrete Klasse mit den Eigenschaften von Component und Container. Sie wird verwendet, um eine Sammlung von Dialogelementen mit einem vorgegebenen Layout zu definieren und wiederverwendbar zu machen. Nützlich ist die Klasse auch beim Layouten von Dialogen, weil sie es ermöglicht, Teildialoge zu schachteln und mit eigenen Layoutmanagern zu versehen. Wir werden auf die Verwendung der Klasse Panel in Kapitel 31 bei der Beschreibung von Benutzerdialogen zurückkommen.

Die für die Entwicklung von Applets wichtige Klasse Applet ist eine direkte Unterklasse von Panel. Sie erweitert zwar die Funktionalität der Klasse Panel um Methoden, die für das Ausführen von Applets von Bedeutung sind, bleibt aber letzlich ein Programmelement, das eine Größe und Position hat, auf Ereignisse reagieren kann und in der Lage ist, weitere Komponenten aufzunehmen. Einerseits ist es bemerkenswert, daß eine Klasse wie Applet, die für eine riesige Zahl von Anwendungen von elementarer Bedeutung ist, ganz unten in der Vererbungskette eines stark spezialisierten Zweigs der Klassenhierarchie steht. Andererseits liefert die Klasse Applet jedoch mit der vorstehenden Beschreibung eine nahezu perfekte Charakterisierung von Applets. Wir werden in Kapitel 39 auf die Eigenschaften dieser Klasse näher eingehen.

Die Klasse Window abstrahiert ein Top-Level-Window ohne Rahmen, Titelleiste und Menü. Sie ist für Anwendungen geeignet, die ihre Rahmenelemente selbst zeichnen oder die volle Kontrolle über das gesamte Fenster benötigen.

Die Klasse Frame repräsentiert ein Top-Level-Window mit Rahmen, Titelleiste und optionalem Menü. Einem Frame kann ein Icon zugeordnet werden, das angezeigt wird, wenn das Fenster minimiert wird. Es kann eingestellt werden, ob das Fenster vom Anwender in der Größe verändert werden kann. Zusätzlich besteht die Möglichkeit, das Aussehen des Mauszeigers zu verändern.

Die zweite aus Window abgeleitete Klasse ist Dialog. Sie ist dafür vorgesehen, modale oder nicht-modale Dialoge zu realisieren. Ein modaler Dialog ist ein Fenster, das immer im Vordergrund des Fensters bleibt, von dem es erzeugt wurde, und das alle übrigen Fensteraktivitäten und Ereignisse so lange blockiert, bis es geschlossen wird. Ein nicht-modaler Dialog kann mit anderen Fenstern koexistieren und erlaubt es, im aufrufenden Fenster weiterzuarbeiten.

Aufgrund von Bugs in der Windows-Portierung des AWT gab es bis zur Version 1.0.2 des AWT keine vernünftige Möglichkeit, modale Dialoge zu erzeugen. Dies war ein ziemlich schwerwiegendes Problem, denn modale Dialoge kommen in der Programmentwicklung sehr häufig vor. Sie werden immer dann benötigt, wenn das Programm auf die Eingabe eines Anwenders warten muß, bevor es fortfahren kann. Leider funktionierte gerade dieser Wartemechanismus nicht, und es wurden eine Reihe aufwendiger Workarounds veröffentlicht. Mit der Version 1.1 des JDK war es erstmals auch unter Windows 95 möglich, echte modale Dialoge in Java zu erstellen. Wir werden auf die Details in Kapitel 31 zurückkommen.

 Hinweis 

Die unterste Klasse in der Hierarchie der Fenster ist FileDialog. Sie stellt den Standard-Dateidialog des jeweiligen Betriebssystems zur Verfügung. Dieser kann beim Laden oder Speichern einer Datei zur Eingabe oder Auswahl eines Dateinamens verwendet werden. Gegenüber den Möglichkeiten des Standard-Dateidialogs, wie er vom Windows-API zur Verfügung gestellt wird, sind die Fähigkeiten der Klasse FileDialog allerdings etwas eingeschränkt.


 Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Addison Wesley, Version 2.0
 <<    <     >    >>  © 2000 Guido Krüger, http://www.gkrueger.com