【问题标题】:How to debug a JOption error message in Java?如何在 Java 中调试 JOption 错误消息?
【发布时间】:2017-04-27 17:23:21
【问题描述】:

我正在做一个学校管理系统项目,一切都很好,除了当我尝试单击保存按钮时,它返回 JOption 错误消息,即电话必须是整数,尽管它已经是整数。我必须说我有一个类似的教师注册表格,并且有效。怎么可能?

private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {                                            
try{    
        int day = Integer.valueOf((String)jComboBoxDay.getSelectedItem());
        int month = Integer.valueOf((String)jComboBoxMonth.getSelectedItem());
        int year = Integer.valueOf((String)jComboBoxYear.getSelectedItem());
        String birthDate = ""+day+month+year;
        String firstName = jTextFieldFirstName.getText();            
        String lastName = jTextFieldLastName.getText();
        String address = jTextFieldAddress.getText();
        String email = jTextFieldEmail.getText();
        int phoneNumber = Integer.parseInt((jTextFieldPhoneNumber).getText());
        String gender = (String)jComboBoxGender.getSelectedItem(); 
        String religion = jTextFieldReligion.getText();
        String contactTeacher =jTextFieldContactTeacher.getText();
        int contactPhoneNumber = Integer.parseInt((jTextFieldContactPhoneNumber).getText());
        int momID = Integer.parseInt((jTextFieldMotherID).getText());
        int fatherID = Integer.parseInt((jTextFieldFatherID).getText());

        Reset();
            Students student = new Students(birthDate,firstName,lastName,address, email,phoneNumber,gender,religion,contactTeacher,contactPhoneNumber,momID,fatherID);
            studentsControl.createStudents(student);
            loadTable();
    } 
            catch (NumberFormatException exception)
    {
        JOptionPane.showMessageDialog(null,"Phone must be an integer ","Error",JOptionPane.ERROR_MESSAGE);
        jTextFieldPhoneNumber.setText("");
}
}             

【问题讨论】:

  • 好吧,我们实际上无法判断错误在哪里,因为它可能是任何这些字段的格式异常。
  • 尝试打印堆栈跟踪并查找它是否真的是电话号码。您的错误消息是硬编码的,与现实没有任何联系...
  • 1) 请参阅What is a stack trace, and how can I use it to debug my application errors? 2) 如需更快的帮助,请尽快发布minimal reproducible exampleShort, Self Contained, Correct Example。 3) 始终复制/粘贴错误和异常输出! 4)为了扩展最后一条评论,我的意思是将catch (NumberFormatException exception) { to catch (NumberFormatException exception) { exception.printStackTrace(); 的输出
  • 我尝试了堆栈跟踪,但我得到了错误,如果我理解正确,我应该粘贴它吗?我不明白为什么一个完全相同的表格适用于教师注册,而电话号码是教师和学生班级都继承的属性。
  • 如果daymonthyear 解析失败会怎样? monIDfatherID 是多少?如果没有更多细节,就无法使用它来调试您的代码

标签: java swing exception-handling joptionpane numberformatexception


【解决方案1】:

您正在从 jComboBoxMonth 对象获取 month 描述。

尝试通过调用getSelectedItem 方法并添加1 来获取索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多