Java StringUtils.isNumeric块作业窗格取消选项

Java StringUtils.isNumeric块作业窗格取消选项,java,joptionpane,Java,Joptionpane,这是我用来处理整数输入的代码: public static int getIntInput(String message) { String numberStr = JOptionPane.showInputDialog(message); while (!StringUtils.isNumeric(numberStr) || Integer.parseInt(numberStr) == 0) { numberStr = JOptionPane.showInput

这是我用来处理整数输入的代码:

public static int getIntInput(String message) {
    String numberStr = JOptionPane.showInputDialog(message);
    while (!StringUtils.isNumeric(numberStr) || Integer.parseInt(numberStr) == 0) {
        numberStr = JOptionPane.showInputDialog(message);
    }
    return Integer.parseInt(numberStr);
}
它可以正常工作,除非我想按JOption窗口上的“取消”或“关闭”按钮。当我这样做时,JOptionPane窗口再次显示

按下“取消”或“关闭”按钮时,如何正确关闭JOptionPane窗口

while (!StringUtils.isNumeric(numberStr) || Integer.parseInt(numberStr) == 0) {

        if (numberStr == null) {
           return 0; 
        }
        else {
            numberStr = JOptionPane.showInputDialog(message);
        }
}

这就成功了。

替换
,而
替换为
如果
@Sasha Salauyou不是一个非常聪明的解决方案,因为我真的希望窗口显示,直到用户输入一个有效的整数。我只想选择关闭窗口>终止程序。那么问题出在哪里
showInputDialog()
当用户提交某些输入时返回,然后验证它。如果无效,则返回输入值以外的内容--null或指示错误输入的值,例如。g-1.