【发布时间】: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 example 或Short, Self Contained, Correct Example。 3) 始终复制/粘贴错误和异常输出! 4)为了扩展最后一条评论,我的意思是将
catch (NumberFormatException exception) {tocatch (NumberFormatException exception) { exception.printStackTrace();的输出 -
我尝试了堆栈跟踪,但我得到了错误,如果我理解正确,我应该粘贴它吗?我不明白为什么一个完全相同的表格适用于教师注册,而电话号码是教师和学生班级都继承的属性。
-
如果
day、month或year解析失败会怎样?monID或fatherID是多少?如果没有更多细节,就无法使用它来调试您的代码
标签: java swing exception-handling joptionpane numberformatexception