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

后端 未结 3 1700
挽巷
挽巷 2020-12-16 05:35

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 sam

相关标签:
3条回答
  • 2020-12-16 06:08

    JOptionPane.showInputDialog() returns the string the user has entered if the user clicks "OK" and returns null otherwise. See this:

    Returns: user's input, or null meaning the user canceled the input

    You can't do this using showInputDialog()

    However, you can use JOptionPane#showOptionDialog():

    Object[] buttons = {"OK"};
    int res = JOptionPane.showOptionDialog(yourFrame,
                       "YourMessage","YourTitle",
                       JOptionPane....,
                       JOptionPane..., null, buttons , buttons[0]);
    

    As @HovercraftFullOfEels stated on the comments, you can add JTextField to the dialog and achieve this.

    0 讨论(0)
  • 2020-12-16 06:18

    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();
        // ...
    }
    
    0 讨论(0)
  • 2020-12-16 06:26

    Try:

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

    I found in here

    0 讨论(0)
提交回复
热议问题