Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JOptionPane中检查输入是否为整数_Java_Joptionpane - Fatal编程技术网

Java 在JOptionPane中检查输入是否为整数

Java 在JOptionPane中检查输入是否为整数,java,joptionpane,Java,Joptionpane,我应该创建一个程序,该程序要求输入整数,但如果用户输入的不是整数,它也能够返回错误消息。我已经搜索并找到了一些关于使用hasNextInt()方法的帖子,但是这些例子使用了scanner,我不知道如何将它与JOptionPane一起使用。当我尝试askBoxes.hasNextInt()时,它不起作用 如何将else行重写为else-if行以检查输入是否为整数,以便在输入不是整数时也能显示错误消息? 简单地说,您需要将它解析为整数,如果它失败,您将捕获一个异常。这样你就知道它是不是整数了 JFr

我应该创建一个程序,该程序要求输入整数,但如果用户输入的不是整数,它也能够返回错误消息。我已经搜索并找到了一些关于使用hasNextInt()方法的帖子,但是这些例子使用了scanner,我不知道如何将它与JOptionPane一起使用。当我尝试askBoxes.hasNextInt()时,它不起作用

如何将else行重写为else-if行以检查输入是否为整数,以便在输入不是整数时也能显示错误消息?

简单地说,您需要将它解析为整数,如果它失败,您将捕获一个异常。这样你就知道它是不是整数了

JFrame frame2 = new JFrame("Boxes");
String askBoxes= JOptionPane.showInputDialog(frame2, 
    "How many boxes?",
    "# of boxes",
    JOptionPane.QUESTION_MESSAGE);

if(askBoxes == null) {
    JOptionPane.showMessageDialog(null, "User pressed cancel, exiting program now!");
    System.exit(0);
} else {
    numBoxes= Integer.parseInt(askBoxes);
}

+1您基本上可以将其粘贴到代码的“else{”部分。谢谢!我没有考虑在else语句中使用try/catch,当我在代码的其他地方尝试时,我一直收到一条错误消息。
}else{ 

        try { 
           numBoxes= Integer.parseInt(askBoxes);

        } catch(NumberFormatException e) { 
          JOptionPane.showMessageDialog(null, "Value must be an integer!");
        }
}