Java 使用JOptionPane进行输入验证
我正在使用Java 使用JOptionPane进行输入验证,java,swing,validation,joptionpane,Java,Swing,Validation,Joptionpane,我正在使用JOptionPane框对程序进行输入验证。我试图让输入框在用户每次以非双精度输入错误消息后重复。我该怎么做 try { lengthResult = Double.parseDouble(JOptionPane.showInputDialog("What is the length of your garage in square feet?")); } catch (NumberFormatException e) { JOp
JOptionPane
框对程序进行输入验证。我试图让输入框在用户每次以非双精度输入错误消息后重复。我该怎么做
try {
lengthResult = Double.parseDouble(JOptionPane.showInputDialog("What is the length of your garage in square feet?"));
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Please enter a number in digit format.","Inane error",JOptionPane.ERROR_MESSAGE);
}
如果要重复消息框,直到用户输入有效的内容,我会这样做:
Double lengthResult = null; //Init to null, which is invalid
String title = "Please anter a number";
int initialType = JOptionPane.QUESTION_MESSAGE;
do {
try {
lengthResult = Double.parseDouble(
JOptionPane.showInputDialog(null,
"What is the length of your garage in square feet?",
title, initialType));
} catch (NumberFormatException e) {
initialType = JOptionPane.ERROR_MESSAGE;
title = "Error: Please enter a number!";
}
} while(lengthResult == null); //Iterate as long as no valid input found
请注意,此检查依赖于lengthResult是Double类型的对象,而不是Double基元类型的对象。使用primitive double时,您需要一些额外的标志,因为您无法通过这种方式检查lengthResult值。使用lengthResult填充条件的do while循环如何?嗨,Jan,谢谢您的输入。我已经尝试过这个概念,这绝对是验证输入的正确方法。我只是不知道如何设置代码。谢谢Jan,这现在变得更有意义了。我现在得到的是两个错误,一个在“Double lengthResult=null”行,另一个在“while(lengthResult==null);”行;。第一个错误是“不能从null转换为double”。Eclipse告诉我参数类型double的运算符未定义,第二个错误的运算符为null。知道为什么吗?您可能已经将长度结果定义为double(小d)而不是double(大写d)?是的!这就是为什么。谢谢你的帮助,简,这使我的程序完全符合我的要求。我将进一步了解“双重”和“双重”之间的区别