Ho visto che questo è possibile in altri tipi di finestre di dialogo come "showConfirmDialog", dove si può specificare la quantità di pulsanti e il loro nome; ma questa stessa funzionalità è ottenibile quando si utilizza "showInputDialog"? Non riesco a trovare questo tipo di cose nell'API. Forse l'ho mancato, ma ogni aiuto è apprezzato.C'è un modo per avere solo il pulsante OK in un JOptionPane showInputDialog (e nessun pulsante CANCEL)?
risposta
Basta aggiungere un JPanel personalizzate come un messaggio a JOptionPane.showOptionDialog()
:
String[] options = {"OK"};
JPanel panel = new JPanel();
JLabel lbl = new JLabel("Enter Your name: ");
JTextField txt = new JTextField(10);
panel.add(lbl);
panel.add(txt);
int selectedOption = JOptionPane.showOptionDialog(null, panel, "The Title", JOptionPane.NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options , options[0]);
if(selectedOption == 0)
{
String text = txt.getText();
// ...
}
grazie per averlo scritto! questo è molto chiaro. –
+1 per l'esempio :) – Maroun
Dovrebbe essere "il tuo nome" BTW;) –
JOptionPane.showInputDialog()
restituisce la stringa immessa dall'utente se l'utente fa clic su "OK" e restituisce null
in caso contrario. Vedere this:
Returns: ingresso dell'utente, o significato nullo l'utente ha annullato l'ingresso
Non si può fare questo usando showInputDialog()
Tuttavia, è possibile utilizzare JOptionPane#showOptionDialog():
Object[] buttons = {"OK"};
int res = JOptionPane.showOptionDialog(yourFrame,
"YourMessage","YourTitle",
JOptionPane....,
JOptionPane..., null, buttons , buttons[0]);
Come @HovercraftFullOfEels indicato nei commenti, è possibile aggiungere JTextField
al dialogo e raggiungere questo.
Sì, in questo modo è molto flessibile. 1+ –
Sono un po 'nuovo in Java, come posso ottenere l'input dell'utente usando questo metodo? –
No, 'showOptionDialog' è qualcosa di diverso da' showInputDialog'! –
Prova:
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.");
ho trovato in here
Sì, è possibile. Con showOptionDialog, puoi personalizzare il pannello delle opzioni molto più liberamente. Modifica: come @Maroun ti mostra nella sua risposta. 1+ alla sua risposta. –