Java Swing-Dialoge
Willemers Informatik-Ecke
Swing Menüs Java

Swing unterstützt den Programmierern mit einer Reihe von Standarddialoge. Diese haben nicht nur den Charme, dass Sie dem Programmierer die Arbeit abnehmen, sondern auch, dass alle Programme einer Plattform die gleichen Dateidialoge verwenden, so dass der Benutzer diese nicht bei jeder Anwendung neu lernen muss, wie es zu MS-DOS-Zeiten üblich war.

Benutzerinteraktionsdialoge

Messagebox

Eine Messagebox ist ein Dialog, der einfach einen Text meldet. Der Benutzer schließt den Dialog oder drückt einen OK-Button.

Der erste Parameter ist das Elternfenster. Bei Swing dient dies vor allem dazu, dass der Dialog etwa in der Nähe dieses Fensters erscheint. Er kann null gesetzt werden. Dann erscheint der Dialog irgendwo.

JOptionPane.showMessageDialog(null, "Achtung, der Mauszeiger rostet.");

Eingabebox

Über diesen Dialog kann der Benutzer eine Textzeile eingeben, beispielsweise seinen Namen.
String name = JOptionPane.showInputDialog(
        elternFenster,
        "Was sagst Du als Außenstehender zum Thema Intelligenz?");
Das Ergebnis steht in der Variablen name. Ist name anschließend null, hat der Benutzer den Dialog abgebrochen.

Ja oder nein?

int antwort = JOptionPane.showOptionDialog(eltern,
    "Wirklich beenden?", "Ende-Titelleiste",
    JOptionPane.YES_NO_CANCEL_OPTION, 
    JOptionPane.QUESTION_MESSAGE, null, null, null);
Die Variable antwort enthält nach Ausführung des Dialogs

Dateidialoge

Den Dateidialog stellt die Klasse JFileChooser.

Öffnen einer Datei

Damit der Dateiauswahldialog zum Lesen einer Datei erscheint, muss über das Objekt der Klasse JFileChooser die Methode showOpenDialog aufgerufen werden. Der Parameter ist das Elternfenster.
JFileChooser auswahl = new JFileChooser();
if (auswahl.showOpenDialog(eltern)==JFileChooser.APPROVE_OPTION) {
    labName.setText(auswahl.getSelectedFile().getName());
}
Die Methode getSelectedFile liefert die Datei als File, die direkt geöffnet werden kann.

Über den File kann getName() aufgerufen werden, um den Dateinamen zu ermitteln.

Speichern einer Datei

Der Speicherdialog unterscheidet sich schon darin, dass eine zu öffnende Datei immer schon da sein muss, während beim Schreiben oft eine neue Datei erstellt wird.

Die Methode showSaveDialog erzeugt den Sicherungsdialog.

JFileChooser auswahl = new JFileChooser();
if (auswahl.showSaveDialog(this)==JFileChooser.APPROVE_OPTION) {
    labName.setText(auswahl.getSelectedFile().getName());
}

Farbdialog

Die Auswahl einer Farbe lässt sich über ein Objekt der Klasse JColorChooser durch den Aufruf der Methode showDialog erreichen.
JColorChooser dia = new JColorChooser();
Color col = dia.showDialog(panel, "Rot", Color.RED);

Der selbstgebaute Dialog JDialog

Will man einen eigenen Dialog erzeugen, gibt es dazu die Klasse JDialog. Sie verhält sich recht ähnlich zu einem JFrame. Im Gegensatz zum JFrame kann dem JDialog ein Elternfenster als Parameter des Konstruktors mitgegeben werden.

JDialog dia = new JDialog(eltern);
dia.setSize(200, 300);
dia.setVisible(true);
Mit add kann ein Kindelement in den JDialog gesetzt werden. Sollen es mehrere sein, muss ein LayoutManager definiert werden.

Soll der Dialog die weiteren Aktivitäten im JFrame stoppen, muss er modal sein. Das erreicht man durch einen weiteren Parameter im Konstruktor:

JDialog dia = new JDialog(eltern, true);

Swing Menüs Java