【发布时间】:2015-09-07 05:27:15
【问题描述】:
我有三个名为 vol1HH1、vol1HH2、vol1HH3 和 fvol 的 JTextfield。其结果在 actionPerformed 事件之后输出。
用户可能只是在 vol1HH1 和 vol1HH2 中输入了一个数字,而不是 vol1HH3,我如何确保将两个数字相加并将结果显示到 fvol 中而不会导致空的 JTextField vol1HH3 出现数字处理错误?
public void actionPerformed(ActionEvent e) {
double number1 = Double.parseDouble(vol1HH1.getText());
double number2 = Double.parseDouble(vol1HH2.getText());
double number3 = Double.parseDouble(vol1HH3.getText());
fvol.setText(Double.toString(number1 + number2 + number3));
}
我试过了,但这似乎不起作用,我做错了什么?
double sum = 0;
if (!vol1HH1.getText().trim().isEmpty()||!vol1HH2.getText().trim().isEmpty()){
// only now parse the text and add it
sum += Double.parseDouble(vol1HH1.getText());
sum += Double.parseDouble(vol1HH2.getText());
}
fvol.setText(Double.toString(sum));
【问题讨论】:
-
请澄清,
"but this doesn't seem to work"。 -
还要在纸上演练你的程序逻辑。
||和 NOT 运算符等逻辑问题应该可以在没有我们帮助的情况下由您解决。我有信心你能解决这个问题。 -
考虑使用
JSpinner或JFormattedField可以执行自己的验证。请参阅How to Use Spinners 和How to Use Formatted Text Fields 了解更多详情
标签: java swing error-handling