Wie kann man ein einfaches Abfragefenster in der Art eines JavaScript 'confirm()' erzeugen?
In der einfachsten Form stellt die Klasse die mehrfach
überladene Methode showConfirmDialog()
bereit, mit der das gewünschte Fenster erzeugt und
wunschgemäß konfiguriert werden kann.
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class EntscheidungsfensterClass {
public static void main(String[] args) {
showDialogs();
}
public static void showDialogs() {
JOptionPane.showConfirmDialog(null, "Eine Meldung");
ImageIcon icon = new ImageIcon("bild.jpg");
int antwort = JOptionPane.showConfirmDialog(null, "Eine Meldung", "Meldung", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, icon);
if (antwort == JOptionPane.OK_OPTION) {
System.out.println("Alles ok!");
} else if (antwort == JOptionPane.NO_OPTION) {
System.out.println("Nichts ist ok!");
} else if (antwort == JOptionPane.CANCEL_OPTION) {
System.out.println("Abbruch!");
} else if (antwort == JOptionPane.CLOSED_OPTION) {
System.out.println("Fenster geschlossen!");
}
}
}
Das Beispiel zeigt zwei mit dieser Methode erzeugte, sich
nacheinander öffnende Entscheidungsfenster und demonstriert
deren Konfigurationsmöglichkeiten.
Der erste Parameter
enthält in jedem Fall eine Referenz auf das Elternfenster des
Dialogs. Er kann auch null
sein. Mit
dem zweiten wird der String
der
Meldung/Frage übergeben.
Die zweite Variante der Methode
weist im Einzelnen die folgenden Parameter auf:
- Elternfenster
- Meldung
- Fenstertitel
- Optionstyp
- Meldungstyp
- Icon (kann auch weg gelassen werden)
Der Optionstyp bestimmt die Anzahl und den Typ der zur Auswahl angebotenen Buttons:
JOptionPane.DEFAULT_OPTION
(nur OK-Button)JOptionPane.YES_NO_OPTION
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.OK_CANCEL_OPTION
Wie beim Meldungsfenster auch stehen fünf verschiedene Meldungstypen zur Verfügung, die bei Verwendung der ersten Methodenversion jeweils einen Standard-Fenstertitel und ein Standard-Icon liefern:
JOptionPane.ERROR_MESSAGE
JOptionPane.INFORMATION_MESSAGE
JOptionPane.WARNING_MESSAGE
JOptionPane.QUESTION_MESSAGE
JOptionPane.PLAIN_MESSAGE
Beim Anklicken der Buttons wird je nach Buttontyp ein spezieller int-Wert zurück gegeben, der zur Auswertung der Entscheidung abgefragt werden kann. Es sind dies:
JOptionPane.YES_OPTION
JOptionPane.NO_OPTION
JOptionPane.CANCEL_OPTION
JOptionPane.OK_OPTION
JOptionPane.CLOSED_OPTION
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.