Wie kann man ein einfaches Eingabefenster in der Art eines JavaScript 'prompt()' erzeugen?
In der einfachsten Form stellt die Klasse die mehrfach
überladene Methode showInputDialog()
bereit, mit der das gewünschte Fenster erzeugt und
wunschgemäß konfiguriert werden kann.
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class EingabefensterClass {
public static void main(String[] args) {
showDialogs();
}
public static void showDialogs() {
JOptionPane.showInputDialog(null, "Bitte etwas eingeben");
Object[] obj={"Bananen","Birnen","Kirschen"};
ImageIcon icon = new ImageIcon("bild.jpg");
Object antwort = JOptionPane.showInputDialog(null, "Obst gewünscht?", "Eingabefenster",
JOptionPane.INFORMATION_MESSAGE, icon, obj,"Birnen");
if (antwort.equals("Bananen")) {
System.out.println("Alles Banane!");
} else if (antwort.equals("Birnen")) {
System.out.println("Die Birne aus Oggersheim!");
} else if (antwort.equals("Kirschen")) {
System.out.println("Kirschen bitte!");
}
}
}
Das Beispiel zeigt zwei mit dieser Methode erzeugte, sich
nacheinander öffnende Eingabefenster 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
- Meldungstyp
- Icon
- Array der Auswahloptionen
- vorausgewählte 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
Zur Auswahl kann ein Array von Objekten übergeben werden,
dessen Vorbelegung im letzten Parameter angegeben wird. Es wird in
Form eines Dropdown-Menus dargestellt.
Die statische Methode
gibt ein Objekt (hier einen String
)
zurück, das auf konventionelle Weise abgefragt und ausgewertet
werden kann.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.