2013-01-18 12 views

risposta

7

Se si desidera che il JOptionPane.showInputDialog con testi dei pulsanti personalizzati, si potrebbe estendere JOptionPane:

public class JEnhancedOptionPane extends JOptionPane { 
    public static String showInputDialog(final Object message, final Object[] options) 
      throws HeadlessException { 
     final JOptionPane pane = new JOptionPane(message, QUESTION_MESSAGE, 
               OK_CANCEL_OPTION, null, 
               options, null); 
     pane.setWantsInput(true); 
     pane.setComponentOrientation((getRootFrame()).getComponentOrientation()); 
     pane.setMessageType(QUESTION_MESSAGE); 
     pane.selectInitialValue(); 
     final String title = UIManager.getString("OptionPane.inputDialogTitle", null); 
     final JDialog dialog = pane.createDialog(null, title); 
     dialog.setVisible(true); 
     dialog.dispose(); 
     final Object value = pane.getInputValue(); 
     return (value == UNINITIALIZED_VALUE) ? null : (String) value; 
    } 
} 

Si può chiamare in questo modo:

JEnhancedOptionPane.showInputDialog("Number:", new Object[]{"Yes", "No"}); 
+0

grazie mille !! esattamente quello che stavo cercando ...! –

15

se non si vuole che solo per un singolo InputDialog, aggiungere queste righe prima di creare dialogo

UIManager.put("OptionPane.cancelButtonText", "nope"); 
UIManager.put("OptionPane.okButtonText", "yup"); 

dove "yup" e "nope" è il testo che si desidera visualizzare

+0

che è stato anche molto utile! Grazie! –

Problemi correlati