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.
Um das zu benutzen
JOptionPaneKlasse, 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.
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
showInputDialogMethode ü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
DiesSchlüsselwort zum Verweisen auf
JFrameDer 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.
Eingangsvariable
erfasst den Text, den der Benutzer in das Textfeld eingibt.
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.
Wenn die
StringArray übergeben Sie an die
showInputDialogBei 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.