我有三个JTextfields,叫做vol1HH1,vol1HH2,vol1HH3和fvol。其结果在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));
答案 0 :(得分:2)
if (!myTextField.getText().trim().isEmpty()) {
// only now parse the text and add it
sum += Double.parseDouble(myTextField.getText());
}
答案 1 :(得分:1)
为避免将空字符串传递给Double.parseDouble()
方法,为什么不使用条件运算符?
可能是这样的
我猜double number3 = Double.parseDouble(vol1HH3.getText().equals("") ? "0" : vol1HH3.getText());
会帮助你解决问题。
每当字段为空时,vol1HH3.getText()
返回一个空字符串并在此时传递0将完成工作并且不会影响您的总和。