java - 在 Java 中如何重置 While 循环而不破坏它?

标签 java validation while-loop

我是 Java 初学者,我正在尝试使用 JOptionPanes 来输入我的变量。 在尝试验证我的输入变量时,我将输入语句放入此 while 循环中。

while (input==false)
{
    inputNumberCoeffa=JOptionPane.showInputDialog("Enter co-efficient of X: ");
    inputNumberConsta=JOptionPane.showInputDialog("Enter Constant Number: ");
    inputNumberPowa=JOptionPane.showInputDialog("Enter Power Bracket should be raised to:");
    if (inputNumberCoeffa==null
        || inputNumberConsta==null
        || inputNumberPowa==null
        ||inputNumberCoeffa.isEmpty()
        || inputNumberConsta.isEmpty()
        || inputNumberPowa.isEmpty()
        || inputNumberCoeffa.matches("[A-Za-z]*")
        || inputNumberConsta.matches("[A-Za-z]*")
        || inputNumberPowa.matches("[A-Za-z]*"))
    {
        JOptionPane.showMessageDialog(null,"Please Enter a Number");        
    }
    else 
    {
        input=true;
    }
    double inputNumberCoeff=Double.parseDouble(inputNumberCoeffa);
    double inputNumberConst=Double.parseDouble(inputNumberConsta);
    double inputNumberPow=Double.parseDouble(inputNumberPowa);
}

这个 while 循环是为了保护底部的 parseDouble 语句免受不良数据的影响。但是,要显示错误消息,您必须在每个数据点中输入。我可以在每个数据入口点周围放置一个 While 循环,但我想知道是否有更有效的方法来解决这个问题?

最佳答案

看看 Dialog Tutorial .

您可以做的就是创建一个验证输入的类并实现 KeyListener然后创建 JOptionPane 并调用 addKeyListener() 并将其传递给您的监听器。因此,当用户在 JOptionPane 中键入内容时,您可以过滤正在键入的内容(并将属性设置为“0”,或者如果用户按 Enter 而不键入任何内容,则将属性设置为“0”)。如果您需要处理其他事件,您还可以添加其他监听器(另请参阅: PropertyChangeListener )。

关于java - 在 Java 中如何重置 While 循环而不破坏它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11495689/

相关文章:

java - android 计划的作业是否在应用程序升级后仍然存在?

java - 在定义之前引用匿名内部类

javascript - 用于验证邮政编码/邮政编码的正则表达式

WPF 验证和 IDataErrorInfo

objective-c - 我可以在 objective-c 的 while 循环中使用 "break"/"continue"吗?

Python - While 假循环

java - 如何简化这些 For 循环以节省代码行数?

java - 坐标 X Y 绘制 Android

java - Android提取id3标签信息

html - Iframe 在验证时显示错误?