【问题标题】:java text dialog, which button was clicked?java文本对话框,单击了哪个按钮?
【发布时间】:2015-04-07 18:05:12
【问题描述】:

我遵循了 java 对话框的官方指南,所以我有这个代码:

String s = JOptionPane.showInputDialog(this, "Text\n\nEnter your name", "Heading", JOptionPane.PLAIN_MESSAGE);

如何检查用户是否单击了确定或取消按钮?

【问题讨论】:

  • showInputDialog 返回的字符串将为空。见docs.oracle.com/javase/7/docs/api/javax/swing/…
  • 不,它将包含用户输入
  • 抱歉,API 不仅声明是这种情况(引用:'返回...用户的输入,或 null 表示用户取消了输入'),而且它按预期执行当我在我的系统上运行它时。如果您发现不正确的地方,我建议您编辑您的问题,以便可以使用适当的上下文来正确回答您的问题。
  • 是的,这是我的错,我没有注意到这一点。引用的文字正是我的问题的答案。谢谢

标签: java swing joptionpane


【解决方案1】:

试试这个:

String input = JOptionPane.showInputDialog(this, "Text\n\nEnter your name", "Heading", JOptionPane.PLAIN_MESSAGE);
if (input!=null) { ....}

请注意,当用户点击“取消”时,input 将为 null

所以如果你想检查用户是否点击了取消或确定按钮,你可以这样尝试

String input = JOptionPane.showInputDialog(this, "Text\n\nEnter your name", "Heading", JOptionPane.PLAIN_MESSAGE);
if (input != null) { 
 // functionality for the OK button click
} else {
 // functionality for the Cancel button click
}

【讨论】:

  • 我需要该对话框中的输入框,编辑:更新的代码无法解决用户点击了哪个按钮
【解决方案2】:

showInputDialog:

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

如果方法调用返回null,那么用户按下了取消。否则,如果他按下ok,它将包含用户输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多