Search code examples
javaswingjoptionpanejdialog

Is there a way to only have the OK button in a JOptionPane showInputDialog (and no CANCEL button)?


I've seen that this is possible in other types of dialog windows such as "showConfirmDialog", where one can specify the amount of buttons and their names; but is this same functionality achievable when using "showInputDialog"? I couldn't seem to find this type of thing in the API. Perhaps I just missed it, but any help is appreciated.


Solution

  • Just add a custom JPanel as a message to 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();
        // ...
    }