【问题标题】:Cannot calculate values for input values and error says: String empty无法计算输入值的值并且错误提示:字符串为空
【发布时间】: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


【解决方案1】:

对不起,我的错误只是我调用了错误的 jtextfield。 JTextField_6 必须是 JTextField_60。

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 2012-07-28
    • 2018-07-04
    • 2014-03-08
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2019-09-16
    • 2011-08-15
    相关资源
    最近更新 更多