java问题出错Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException,请说明怎么改正
JButtonbtnSearch=newJButton("search");btnSearch.addActionListener(newActionListener()...
JButton btnSearch = new JButton("search");
btnSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
StudentInfo stu = null;
stu = StudentInfo.searchStudent(txtID.getText());
btnDelete.setEnabled(false);
if (stu != null) {
btnDelete.setEnabled(true);
txtName.setText(stu.getName());
rdbtnMale.setSelected(stu.getSex() > 0);
txtBirthday.setText(stu.getBirthday());
txtClass.setText(stu.getStuClass());
txtDepartment.setText(stu.getDepartment());
} else {
JOptionPane.showMessageDialog(null, "学生(ID=" + txtID.getText() +")不存在,无法删除!");
}
这是出错的代码 展开
btnSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
StudentInfo stu = null;
stu = StudentInfo.searchStudent(txtID.getText());
btnDelete.setEnabled(false);
if (stu != null) {
btnDelete.setEnabled(true);
txtName.setText(stu.getName());
rdbtnMale.setSelected(stu.getSex() > 0);
txtBirthday.setText(stu.getBirthday());
txtClass.setText(stu.getStuClass());
txtDepartment.setText(stu.getDepartment());
} else {
JOptionPane.showMessageDialog(null, "学生(ID=" + txtID.getText() +")不存在,无法删除!");
}
这是出错的代码 展开
4个回答
展开全部
StudentInfo.searchStudent(txtID.getText());
StudentInfo.searchStudent();这样写是可以的
空指针异常应该是指txtID为空,在代码中没看见你实例化这个对象就直接调用这个对象的方法,所以会出现空指针异常。把txtID打印出来看看,是不是为空,或者用断点调试看看这个对象的值。
StudentInfo.searchStudent();这样写是可以的
空指针异常应该是指txtID为空,在代码中没看见你实例化这个对象就直接调用这个对象的方法,所以会出现空指针异常。把txtID打印出来看看,是不是为空,或者用断点调试看看这个对象的值。
更多追问追答
追问
额,不能该这里唉。。。
追答
没让你改这里的代码啊,只是让你在这行前面实例化txtID这个对象而已。你不是说这行出的空指针异常的错嘛,那肯定是txtID没实例化啊
展开全部
StudentInfo stu = null;
stu = StudentInfo.searchStudent(txtID.getText());
btnDelete.setEnabled(false);
if (stu != null) {//问题应该是这个,没看到你的方法,也不好判断,最好是多写段代码,这样保险点,要不指不定什么地方就给你出点问题,让你搞上半天,
/*你这里,做一下测试先,System.out.println(11111); 看看代码有没有到这个地方,
最好还是多写个dao,
public boolean stus(int stuid ) throws Exception{
boolean flag = false;
String hqld="FROM Stus AS u WHERE u.stuid =?";
Query q=super.getSession().createQuery(hqld);
q.setInteger(0, newid);
List all = q.list();
if (all.size() > 0){
flag=true;
}
return flag;
}
//调用的时候,把你的
boolean flag = false;
flag=this.StudentInfo.stus(txtID.getText())
if (stu == true) {
btnDelete.setEnabled(true);
txtName.setText(stu.getName());
rdbtnMale.setSelected(stu.getSex() > 0);
txtBirthday.setText(stu.getBirthday());
txtClass.setText(stu.getStuClass());
txtDepartment.setText(stu.getDepartment());
}else{
JOptionPane.showMessageDialog(null, "学生(ID=" + txtID.getText() +")不存在,无法删除!");
}
stu = StudentInfo.searchStudent(txtID.getText());
btnDelete.setEnabled(false);
if (stu != null) {//问题应该是这个,没看到你的方法,也不好判断,最好是多写段代码,这样保险点,要不指不定什么地方就给你出点问题,让你搞上半天,
/*你这里,做一下测试先,System.out.println(11111); 看看代码有没有到这个地方,
最好还是多写个dao,
public boolean stus(int stuid ) throws Exception{
boolean flag = false;
String hqld="FROM Stus AS u WHERE u.stuid =?";
Query q=super.getSession().createQuery(hqld);
q.setInteger(0, newid);
List all = q.list();
if (all.size() > 0){
flag=true;
}
return flag;
}
//调用的时候,把你的
boolean flag = false;
flag=this.StudentInfo.stus(txtID.getText())
if (stu == true) {
btnDelete.setEnabled(true);
txtName.setText(stu.getName());
rdbtnMale.setSelected(stu.getSex() > 0);
txtBirthday.setText(stu.getBirthday());
txtClass.setText(stu.getStuClass());
txtDepartment.setText(stu.getDepartment());
}else{
JOptionPane.showMessageDialog(null, "学生(ID=" + txtID.getText() +")不存在,无法删除!");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空指针异常,看看是多少行代码引起的。
更多追问追答
追问
StudentInfo stu = null;
stu = StudentInfo.searchStudent(txtID.getText());
应该是这里,您看下,怎么初始化?
追答
StudentInfo stu = null; --------> StudentInfo stu = new StudentInfo();
没有构造StudentInfo对象就使用了,所以跑空指针了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要定位一下出错的地方,这样好帮你找出原因
更多追问追答
追问
StudentInfo stu = null;
stu = StudentInfo.searchStudent(txtID.getText());
这里吧,您看下,怎么初始化啊,我们要教作业的。。。
追答
你把源代码给我,我帮你修正一下,然后在发给你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询