当JTextField内容不等于某个int时,java显示消息
我正在研究如何在用户未在JTextField中键入数字7时显示消息对话框:
这是我在按钮单击事件中尝试的代码:
try {
Double user_input = Double.parseDouble(myTextField.getText());
while (user_input !=7) {
JOptionPane.showMessageDialog(null, "Please type number 7","Error", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
}
# 1 楼答案
我试过你的密码。如果我在
JTextField
中键入的数字不是7,它就可以工作。如果我键入字母,弹出警告将不会显示。我认为当你输入字母而不是数字时,它不起作用事情是这样的:
try ... catch
块用于捕获exception
。如果键入数字,double.parseDouble
将起作用,因此try
块中没有要捕获的exception
,如果while
中的条件不满足,您将看到警告消息如果您键入字母,
double.parseDouble
将引发异常,因为不允许将字母转换为双精度。它不会移动到下一行(while循环),而是跳转到catch
块来处理异常,但您没有指定如何执行,并且不会看到任何警告消息因此,解决方案很简单:向
catch
块添加一个操作,以便在double.parseDouble
抛出异常时执行某些操作,例如显示一条消息:您可能会注意到,通过使用
while
,警告消息会一直显示,因为输入值不是7的条件总是true
。因此,将if
更改为@Hades answer或添加break
使其仅显示1次我更喜欢
if
# 2 楼答案
向按钮添加事件侦听器对我来说很有效