区分 JOptionPane.showInputDialog() 中的无输入(空字符串)和取消按钮?

Differentiating between no input (null String) and Cancel button in JOptionPane.showInputDialog()?

我正在使用输入对话框进行用户输入。输入可以是字符串值,或者只需按 "OK" 即可使用默认值。这样,就无法区分用户指定默认值(无字符串输入,"OK" 按钮按下)和用户取消("Cancel" 按钮按下)。 return 都是空字符串。

看起来我可以在 InputDialog 上注册一个 PropertyChangeListener,但这需要(显然)直接构建 InputDialog,然后添加到 JDialog 等(JOptionPane 现在在后台为我做的所有事情都很好.

问题:是否有其他方法可以区分 "OK" 和 "Cancel",而无需自己构建 InputDialog 并添加 PropertyChangeListener?

您可以使用 "" 作为 initialSelectionValue 参数来区分确定和取消:

String s = JOptionPane.showInputDialog(parent, "Enter a value", "");

如果用户点击了取消,s为空,如果用户点击了确定但没有输入值,则为""