Literatur

JDialog

Eine weitere Klasse aus der Kategorie der Fenster ist javax.swing.JDialog. Der JDialog ähnelt sehr stark einem JFrame mit der Ausnahme, dass der JDialog modal gesetzt werden kann. Modal bedeutet, dass, während der betreffende JDialog angezeigt wird, kein anderes Fenster verwendbar bzw. aktivierbar ist. Deswegen wird der JDialog häufig auch als Grundlage für Fehlermeldungen oder Rückfragen an den Benutzer ("Wollen Sie die Datei wirklich löschen?") verwendet, auf die dieser zwingend reagieren muss, bevor er im  Programm fortfahren kann. Der JDialog kann keine JInternalFrame's verwalten.

Schauen wir uns jetzt einmal ein Beispiel an, wie wir einen Dialog erzeugen und anzeigen:

// Import-Anweisung für unseren JDialog
import javax.swing.JDialog;
 
public class DialogBeispiel
{
    // main-Methode
    public static void main(String[] args)
    {
        // Erzeugung eines neuen Frames mit 
        // dem Titel Beispiel JDialog
        JDialog meinJDialog = new JDialog();
        // Titel wird gesetzt
        meinJDialog.setTitle("Mein JDialog Beispiel");
        // Breite und Höhe des Fensters werden 
        // auf 200 Pixel gesetzt
        meinJDialog.setSize(200,200);
        // Dialog wird auf modal gesetzt
        meinJDialog.setModal(true);
        // Wir lassen unseren Dialog anzeigen
        meinJDialog.setVisible(true);
    }
}

Wir erzeugen ein JDialog-Objekt mit dem new-Operator. Im Gegensatz zur Klasse JFrame kann bei JDialog dem Konstruktor kein Titel übergeben werden. Daher muss man den Titel über die Methode setTitle setzen. Anschließend setzen wir  mit der Methode setSize die Breite und die Höhe auf jeweils 200 Pixel. Außerdem machen wir unseren Dialog modal, was in diesem einfachen Beispiel jedoch keinen festzustellenden Einfluss hat, da der Dialog eh der einzige in unserer Anwendung ist. Zum Schluss lassen wir uns über die Methode setVisible den Dialog anzeigen.

Nach dem Ausführen des obigen Quelltextes sollten Sie folgendes Bild angezeigt bekommen:

 

JDialog Beispiel

Wir haben jetzt ein einfaches Fenster erzeugt, aber wir wissen noch nicht, wie wir dieses auch mit Elementen füllen.

Wir werden jetzt mit der Hilfe eines einfachen Elementes JLabel dieses Fenster mit einem festen Text versehen. Ein Label ist nichts weiter als ein Schriftzug. Wir wollen Ihnen mit diesem einfachen Beispiel lediglich demonstrieren, wie man Elemente ohne großen Aufwand und ohne ein besonderes Layout hinzufügen kann. 

Die Methode add fügt unserem Frame neue Komponenten hinzu. Wir erweitern nun das obige Beispiel:

// Import-Anweisung für unseren JDialog
import javax.swing.JDialog;
// Import-Anweisung für unser JLabel 
import javax.swing.JLabel;
 
public class JDialogBeispiel
{
    // main-Methode
    public static void main(String[] args)
    {
        // Erzeugung eines neuen JDialogs mit 
        // dem Titel "Beispiel JDialog"
        JDialog meinJDialog = new JDialog();
        // Titel wird gesetzt
        meinJDialog.setTitle("Mein JDialog Beispiel");
 
        // Höhe und Breite des Fensters werden 
        // auf 200 Pixel gesetzt
        meinJDialog.setSize(200,200);
        // Dialog wird auf modal gesetzt
        meinJDialog.setModal(true);
        // Hinzufügen einer Komponente, 
        // in diesem Fall ein JLabel
        meinJDialog.add(new JLabel("Beispiel JLabel"));
        // Wir lassen unseren JDialog anzeigen
        meinJDialog.setVisible(true);
    }
}

Wie Sie sehen, haben wir hier nur eine Import-Anweisung für unser JLabel eingebunden und die Methode add aufgerufen. Der Methode add haben wir als Parameter ein Objekt der Klasse JLabel übergeben. Dem Konstruktor wurde beim Erzeugen des JLabel-Objektes der Text übergeben, den dieses anzeigen soll. Beim Ausführen des veränderten Quellcodes erhalten wir nun folgendes Bild:

JDialog Beispiel mit JLabel

Wie Sie sehen, steht jetzt der Text, den wir für das JLabel vorgegeben haben, in unserem Frame. Über die Methode add können so beliebige Bedienelemente unserer Oberfläche hinzugefügt werden. Wir werden in den späteren Kapiteln der Bedienelemente zeigen, wie diese im Einzelnen funktionieren.