java - JOptionPane 输入对话框如何决定值是 2 还是 JOptionPane.CANCEL_OPTION

标签 java swing parsing input joptionpane

我使用以下代码来获取InputDialog:

String c = JOptionPane.showInputDialog("Select number",JOptionPane.OK_OPTION);

我还希望用户仅使用 0 到 100 之间的 IntegerValues。 我通过以下代码处理这个问题:

while(notAllowed){
    try{
        int t =Integer.parseInt(c);
        if(t==JOptionPane.CANCEL_OPTION)
        {
            notAllowed=false;
            cancel=true;
        }
        if(t<=100 && t>0 &&notAllowed)
            notAllowed=false;
    }
    catch( Exception err)
    {}
    if(notAllowed)
        c = JOptionPane.showInputDialog("Only Numbers between 1 and 100 are allowed");
    }

现在,如果用户键入数字 2,就像单击“取消”按钮一样,因为 JOptionPane.CANCEL_OPTION 的值也是 2。 那么我如何知道是否单击了“取消”或输入值是 2。

最佳答案

如果用户单击“取消”,JOptionPane 将返回 null。否则该值将被返回。 我用这个小例子发现了这一点:

public class JOptionPaneTest {

    public static void main(String[] args) {
        Object obj = JOptionPane.showInputDialog(null, "test", "test-text");
        System.out.println(obj);
    }

}

关于java - JOptionPane 输入对话框如何决定值是 2 还是 JOptionPane.CANCEL_OPTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604547/

相关文章:

java - 在 spring 数据 jpa 查询中默认一个值?

java - Swing - 等待渲染完成

java - 如何上传 bufferedImage 而不将其存储在用户系统中?

java - 验证表达式

java - 在 Android 中解析 double 时出错

java - 有什么好的方法可以控制 GridBagConstraints?

java - OpenCSV 写入其他列

java - 随着应用程序的增长,Struts 2 验证无法正常工作

Java showInputDialog 选择自定义文本

python - 找不到 pyparsing 预期的字符串