Erstellen eines Eingabedialogfelds

Mitteilungsdialogfelder eignen sich hervorragend, wenn Sie den Benutzer über eine Mitteilung informieren und eine einfache Antwort erhalten möchten (z. B. mit JA oder OK). Manchmal möchten Sie jedoch, dass der Benutzer ein wenig Daten angibt. Möglicherweise möchte Ihr Programm ein Popup-Fenster, in dem Sie den Namen oder das Sternchen des Programms abrufen können. Dies kann einfach mit dem erreicht werden

showInputDialog 

Methode der

JOptionPane 

Klasse.

Die JOptionPane-Klasse

Um das zu benutzen

JOptionPane
Klasse, für die Sie keine Instanz von a erstellen müssen
JOptionPane

weil es Dialogfelder durch die Verwendung von statischen Methoden und statischen Feldern erstellt. Es werden nur modale Dialogfelder erstellt, was für Eingabedialogfelder in Ordnung ist, da Sie im Allgemeinen möchten, dass der Benutzer etwas eingibt, bevor Ihre Anwendung ausgeführt wird.

Das

showInputDialog 

Die Methode wurde mehrmals überladen, um Ihnen einige Optionen für die Anzeige des Eingabedialogfelds zu geben. Es kann ein Textfeld, ein Kombinationsfeld oder eine Liste enthalten. Für jede dieser Komponenten kann ein Standardwert ausgewählt werden.

Eingabedialog mit einem Textfeld

Der am häufigsten verwendete Eingabedialog besteht lediglich aus einer Meldung, einem Textfeld für die Eingabe der Antwort durch den Benutzer und einer Schaltfläche OK:

Das

showInputDialog
Methode übernimmt die Erstellung des Dialogfensters, des Textfeldes und der Schaltfläche OK. Sie müssen lediglich die übergeordnete Komponente für den Dialog und die Nachricht an den Benutzer bereitstellen. Für die übergeordnete Komponente verwende ich die
Dies
Schlüsselwort zum Verweisen auf
JFrame
Der Dialog wird aus erstellt. Sie können null verwenden oder einen Namen eines anderen Containers angeben (z.,
JPanel
) als Elternteil. Durch das Definieren einer übergeordneten Komponente kann sich der Dialog im Verhältnis zu seiner übergeordneten Komponente auf dem Bildschirm positionieren. Wenn es auf null gesetzt ist, wird das Dialogfeld in der Mitte des Bildschirms angezeigt.
Das
Eingangsvariable

erfasst den Text, den der Benutzer in das Textfeld eingibt.

Eingabedialog mit einem Kombinationsfeld

Um dem Benutzer eine Auswahl aus einem Kombinationsfeld zu geben, müssen Sie ein String-Array verwenden:

// Optionen für das Kombinationsfeld dialogString [] 
options = "Montag", "Dienstag"
 ,"Mittwoch Donnerstag Freitag";
// Eingabedialog mit einem Kombinationsfeld 
String selected = (String) JOptionPane.showInputDialog (dies, "Wähle einen Tag:"
 , "ComboBox-Dialog", JOptionPane.QUESTION_MESSAGE
 , Null, Auswahlmöglichkeiten, Auswahlmöglichkeiten [0]);

Da ich ein String-Array für die Auswahlwerte übergebe, entscheidet die Methode, dass ein Kombinationsfeld der beste Weg ist, um diese Werte dem Benutzer zu präsentieren. Dies

showInputDialog

Methode gibt ein zurück

Objekt

und weil ich den Textwert der Auswahlbox erhalten möchte, habe ich den Rückgabewert als (

String

).

Beachten Sie auch, dass Sie einen der OptionPane-Nachrichtentypen verwenden können, um dem Dialogfeld ein bestimmtes Gefühl zu verleihen. Dies kann außer Kraft gesetzt werden, wenn Sie ein Symbol Ihrer Wahl übergeben.

Eingabedialog mit einer Liste

Wenn die

String
Array übergeben Sie an die
showInputDialog 
Bei einer Methode mit 20 oder mehr Einträgen wird anstelle eines Kombinationsfelds entschieden, die Auswahlwerte in einem Listenfeld anzuzeigen.

Ein vollständiges Java-Codebeispiel kann im Programm für Eingabedialogfelder angezeigt werden. Wenn Sie die anderen Dialogfelder sehen möchten, die die JOptionPane-Klasse erstellen kann, sehen Sie sich das JOptionPane Option Chooser-Programm an.