【发布时间】:2019-03-13 09:20:02
【问题描述】:
我无法执行计算。由于错误,无法显示值: java.lang.NumberFormatException: 空字符串
我的控制器得到了这个代码:
public class Calculate {
private MainFrame MainFrame;
private CalculatorModel CalculatorModel;
public Calculate(MainFrame MainFrame, CalculatorModel CalculatorModel){
this.MainFrame = MainFrame;
this. CalculatorModel = CalculatorModel;
}
public void CalculateTotalCash() {
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
double textField_6 ,textField_7 ,textField_8, textField_15, textField_16, textField_17, textField_18, textField_19, textField_20, textField_21 = 0;
try {
textField_6 = Double.parseDouble(MainFrame.textField_6.getText());
textField_7 = Double.parseDouble(MainFrame.textField_7.getText());
textField_8 = Double.parseDouble(MainFrame.textField_8.getText());
textField_15 = Double.parseDouble(MainFrame.textField_15.getText());
textField_16 = Double.parseDouble(MainFrame.textField_16.getText());
textField_17 = Double.parseDouble(MainFrame.textField_17.getText());
textField_18 = Double.parseDouble(MainFrame.textField_18.getText());
textField_19 = Double.parseDouble(MainFrame.textField_19.getText());
textField_20 = Double.parseDouble(MainFrame.textField_20.getText());
textField_21 = Double.parseDouble(MainFrame.textField_21.getText());
CalculatorModel.addAll(textField_6, textField_7,textField_8,textField_15,textField_16,textField_17,textField_18,textField_19,textField_20,textField_21);
MainFrame.textField_22.setText(Double.toString(CalculatorModel.getAnswer()));
}catch(NumberFormatException ex){
System.out.println(ex);
MainFrame.displayErrorMessage("Please Fill in All Fields...");
}
}
};
MainFrame.CalculateCashDrawer().addActionListener(actionListener);
}
}
我的模型得到了这个代码:
public class CalculatorModel {
private double answer;
public void addAll(double textField_6, double textField_7, double textField_8, double textField_15, double textField_16,
double textField_17, double textField_18, double textField_19, double textField_20, double textField_21) {
answer = (0.5 * textField_6) + (0.25 * textField_7) + textField_8 + (10 * textField_15) + (50 * textField_16)
+ (20 * textField_17) + (100 * textField_18) + (200 * textField_19) + (1000 * textField_20) + (2000 * textField_21);
}
public double getAnswer() {
return answer;
}
}
我在所有文本字段中输入值并单击按钮计算,但随后出现错误。它出什么问题了?
【问题讨论】:
-
其中一个 Mainframe.textField_**.getText() 返回空并尝试将其解析为双对象会给您异常。使用调试器或日志并找出哪个文本字段返回空字符串。
-
请添加来自
ex.printStackTrace的堆栈跟踪。很可能其中一个字段是空的,它正在抛出 Parse Exception。 -
当您尝试将字符串转换为数字时出现数字格式异常可能是 int long 等
-
如何更正返回为空的文本字段?
标签: java eclipse model-view-controller