2013-05-12 9 views
5

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)?

+1

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. –

risposta

14

Basta aggiungere un JPanel personalizzate come un messaggio a JOptionPane.showOptionDialog():

enter image description here

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(); 
    // ... 
} 
+1

grazie per averlo scritto! questo è molto chiaro. –

+1

+1 per l'esempio :) – Maroun

+0

Dovrebbe essere "il tuo nome" BTW;) –

4

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.

+1

Sì, in questo modo è molto flessibile. 1+ –

+0

Sono un po 'nuovo in Java, come posso ottenere l'input dell'utente usando questo metodo? –

+0

No, 'showOptionDialog' è qualcosa di diverso da' showInputDialog'! –

1

Prova:

JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green."); 

ho trovato in here

Problemi correlati