Creazione di una finestra di dialogo di input

Le finestre di dialogo dei messaggi sono eccezionali quando si desidera informare l'utente di un messaggio e ottenere una risposta semplice (ovvero un clic SÌ o OK), ma a volte l'utente desidera fornire un po 'di dati. Forse il tuo programma vuole una finestra pop-up per afferrare il loro nome o il segno zodiacale. Questo può essere ottenuto facilmente usando il

showInputDialog 

metodo del

JOptionPane 

classe.

La classe JOptionPane

Per usare il

JOptionPane
classe non è necessario creare un'istanza di a
JOptionPane

perché crea finestre di dialogo attraverso l'uso di metodi statici e campi statici. Crea solo finestre di dialogo modali che vanno bene per le finestre di dialogo di input perché in genere si desidera che l'utente inserisca qualcosa prima che l'applicazione continui a funzionare.

Il

showInputDialog 

Il metodo viene sovraccaricato più volte per darvi alcune opzioni su come appare la finestra di dialogo di input. Può avere un campo di testo, una casella combinata o un elenco. Ognuno di questi componenti può avere un valore predefinito selezionato.

Finestra di dialogo di input con un campo di testo

La finestra di dialogo di input più comune ha semplicemente un messaggio, un campo di testo per l'utente di inserire la propria risposta e un pulsante OK:

Il

showInputDialog
Il metodo si occupa della costruzione della finestra di dialogo, del campo di testo e del pulsante OK. Tutto quello che devi fare è fornire all'utente il componente principale per la finestra di dialogo e il messaggio. Per il componente genitore sto usando il
Questo
parola chiave per indicare il
JFrame
la finestra di dialogo viene creata da. Puoi utilizzare null o specificare un nome per un altro contenitore (ad es.,
JPanel
) come genitore. La definizione di un componente genitore consente alla finestra di dialogo di posizionarsi sullo schermo in relazione al suo genitore. Se è impostato su null, la finestra di dialogo verrà visualizzata al centro dello schermo.
Il
variabile di input

acquisisce il testo immesso dall'utente nel campo di testo.

Finestra di dialogo di input con una casella combinata

Per offrire all'utente una selezione di scelte da una casella combinata è necessario utilizzare un array String:

// Opzioni per la finestra di dialogo dialogString [] 
scelte = "Lunedì", "Martedì"
 ,"Mercoledì giovedì venerdì";
// Finestra di dialogo di input con una casella combinata 
String pick = (String) JOptionPane.showInputDialog (this, "Scegli un giorno:"
 , "Finestra di dialogo ComboBox", JOptionPane.QUESTION_MESSAGE
 , null, scelte, scelte [0]);

Mentre sto passando un array di stringhe per i valori di selezione, il metodo decide che una casella combinata è il modo migliore per presentare tali valori all'utente. Questo

showInputDialog

il metodo restituisce un

Oggetto

e poiché desidero ottenere il valore di testo della selezione della casella combinata, ho definito il valore restituito come un (

Corda

).

Si noti inoltre che è possibile utilizzare uno dei tipi di messaggio di OptionPane per dare una certa sensazione alla finestra di dialogo. Questo può essere ignorato se passi un'icona di tua scelta.

Finestra di dialogo di input con un elenco

Se la

Corda
array passato al
showInputDialog 
Il metodo ha 20 o più voci, quindi invece di utilizzare una casella combinata deciderà di mostrare i valori di selezione in una casella di riepilogo.

Un esempio di codice Java completo può essere visualizzato nel programma della finestra di dialogo di input. Se sei interessato a vedere le altre finestre di dialogo che la classe JOptionPane può creare, dai un'occhiata al programma di selezione delle opzioni JOptionPane.