有没有办法在JOptionPane showInputDialog中只有OK按钮(而且没有CANCEL按钮)?

我已经看到这可以在其他类型的对话框窗口中使用,例如“showConfirmDialog”,其中可以指定按钮的数量及其名称; 但使用“showInputDialog”时是否可以实现相同的function? 我似乎无法在API中找到这种类型的东西。 也许我只是错过了它,但任何帮助都表示赞赏。

只需将自定义JPanel作为消息添加到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(); // ... } 

如果用户单击“确定”,则JOptionPane.showInputDialog()返回用户输入的字符串,否则返回null 。 看到这个 :

返回:用户的输入,或null表示用户取消了输入

你不能使用showInputDialog()来做到这一点

但是,您可以使用JOptionPane#showOptionDialog() :

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

正如@HovercraftFullOfEels在评论中所述,您可以将JTextField添加到对话框中并实现此目的。

尝试:

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

我在这里找到了