Advanced   Java   Services
Dialog
Back Next Up Home

Dialog ist ein von einem anderen Dialog oder von einem Frame abhängiges TopLevelFenster. Ein Dialog hat einen Titelbalken wie ein Frame, allerdings ohne Icon. Da er sich aber von Window ableitet und nicht von Frame kann er keine MenuBar aufnehmen (siehe auch MenuComponentHierarchie). Diesen Fehler hat man in Swing behoben, die Ableitung JDialog von Dialog kann eine JMenuBar aufnehmen.

Konstruktoren
Dialog(Dialog owner)
 
Constructs an initially invisible, non-modal Dialog with an empty title and the specified owner dialog.
Dialog(Dialog owner, String title)
 
Constructs an initially invisible, non-modal Dialog with the specified owner dialog and title.
Dialog(Dialog owner, String title, boolean modal)
 
Constructs an initially invisible Dialog with the specified owner dialog, title, and modality.
Dialog(Frame owner)
 
Constructs an initially invisible, non-modal Dialog with an empty title and the specified owner dialog.
Dialog(Frame owner, String title)
 
Constructs an initially invisible, non-modal Dialog with the specified owner dialog and title.
Dialog(Frame owner, String title, boolean modal)
 
Constructs an initially invisible Dialog with the specified owner dialog, title, and modality.
Wichtige Methoden
ReturntypName der Methode
Konfigurierung des Titelbalkens
String
 
getTitle()
Gets the title of the dialog.
void
 
setTitle(String title)
Sets the title for this dialog to the specified string.
Aussehen, Zustand
boolean
 
isModal()
Indicates whether the dialog is modal.
void
 
setModal(boolean b)
Specifies whether this dialog should be modal.
boolean
 
isResizable()
Indicates whether this dialog is resizable by the user.
void
 
setResizable(boolean resizable)
Sets whether this dialog is resizable by the user.
boolean
 
isUndecorated()
Indicates whether this dialog is undecorated.
void
 
setUndecorated(boolean undecorated)
Disables or enables decorations for this dialog.


modale und nicht-modale Dialoge


Ein Dialog kann modal sein oder nicht-modal. Ein modaler Dialog ist reaktionsbedürftig und behält immer den Fokus. Er blockiert den TLC, aus dem heraus er erzeugt worden ist solange, bis der Benutzer den Dialog beendet (in der Regel. in dem der Benutzer auf einen Button klickt). Ein Standardbeispiel für einen modalen Dialog ist der bekannte YesNoCancel-Dialog.

Ein nicht-modaler Dialog ist nicht reaktionsbedürftig. Er kann den Fokus verlieren und man kann den Fokus zurücklegen auf den TLC, der den Dialog erzeugt hat. das Standardbeispiel für einen nichtmodealen Dialog ist der Suchen-und-Ersetzen Dialog bei Texteditoren.


Initialisierung, Layout und Eventhandling


Einen Dialog initialisieren

Ein Dialog wird ähnlich zu einem Frame initialisiert.

Dialog dial = Dialog(owner, "nichtmodaler Dialog") ;
// owner ist ein Frameobjekt
dial.setLocation(100,100);
dial.setSize(400,300);
dial.setVisible(true);

Aufnehmen von Komponenten und Layout

Das Defaultlayout für Dialog wird von Window übernommen und ist daher BorderLayout. Einzelheiten, wie man Komponenten in einen Container aufnimmt, der ein BorderLayout hat, findet man im Kapitel Layout unter BorderLayout. BorderLayout teilt den Dialog in fünf Regionen ein, von denen nicht alle benützt werden müssen.

borderlayout.jpg

Das Aufnehmen von Komponenten in die einzelnen Regionen erfolgt nach dem folgenden Schema:

dialog.add(komponente, BorderLayout.NORTH) ;
dialog.add(komponente, BorderLayout.CENTER) ;
// usw.



Eventhandling

Dialog erbt alle Methoden zum Thema Eventhandling von seinen Vorgängern. Wie man dieses einsetzt, findet sich in einem eigenen Kapitel über Eventhandling.

Fokushandling

Die Version 1.4 hat die Klasse Dialog um eine ganze Reihe von neuen Methoden bereichert, u.a. wurde die ganze Fokusbehandlung neu strukturiert. Eine Auflistung der neu hinzugekommenen Methoden findet sich unter

New 1.4 methods in Component and its subclasses (Summary).

Auf das neue Fokusmanagement wird eingegangen in

Neues 1.4 FokusManagement.

top Back Next Up Home