From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100174.html | 203 +++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100174.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100174.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100174.html b/Master/Reference Architectures and Patterns/hjp5/html/k100174.html new file mode 100644 index 0000000..6d09b57 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100174.html @@ -0,0 +1,203 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +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.4.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, +dass 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 muss, bevor es fortfahren kann. Leider +funktionierte gerade dieser Wartemechanismus nicht, und es wurden +eine Reihe aufwändiger 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  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3