求助~空指针异常问题

x1354959688 2016-09-17 04:09:28
package com.zky.www.view;
import java.awt.*;

import javax.swing.*;

import com.zky.www.bean.User;
import com.zky.www.dao.Dao;

import java.awt.event.*;
public class UpdatePassIFrame extends JInternalFrame{

private JLabel lbusername=new JLabel("用户名:");
private JTextField txtusername=new JTextField();

private JLabel lboldpassword=new JLabel("旧密码:");
private JPasswordField txtoldpassword=new JPasswordField();

private JLabel lbnewpassword=new JLabel("新密码:");
private JPasswordField txtnewpassword=new JPasswordField();

private JLabel lbnewpassword2=new JLabel("确认密码:");
private JPasswordField txtnewpassword2=new JPasswordField();


private JButton btnupdate=new JButton("修改");
private JButton btnreset=new JButton("重置");

User user=LoginFrame.getUser(); //新建User对象
UpdatePassIFrame()
{
this.setSize(new Dimension(320,300));
this.setLocation(240, 120);
this.setClosable(true); //设置窗口可以关闭
this.setMaximizable(false); //设置子窗体不允许最大化
this.setIconifiable(true); //设置子窗体可以图标化
this.setTitle("修改密码");

lbusername.setBounds(50, 40, 60, 25);
txtusername.setBounds(120, 40, 140,25);
txtusername.setText(user.getUsername()); //将当前登录用户名放入用户名文本框中
txtusername.setEditable(false); //设置使调用这个方法的控件不允许被编辑

lboldpassword.setBounds(50, 75, 60, 25);
txtoldpassword.setBounds(120, 75, 140, 25);

lbnewpassword.setBounds(50, 110, 60, 25);
txtnewpassword.setBounds(120, 110, 140, 25);

lbnewpassword2.setBounds(50, 145, 60, 25);
txtnewpassword2.setBounds(120, 145, 140, 25);

btnupdate.setBounds(80, 200, 60, 25);
btnreset.setBounds(150, 200, 60, 25);

Container cont=this.getContentPane();
cont.setLayout(null);
cont.add(lbusername);
cont.add(txtusername);

cont.add(lboldpassword);
cont.add(txtoldpassword);

cont.add(lbnewpassword);
cont.add(txtnewpassword);

cont.add(lbnewpassword2);
cont.add(txtnewpassword2);


cont.add(btnupdate);
cont.add(btnreset);

btnupdate.addActionListener(new UpdatePasswordAction()); //将修改按钮加入监听事件

this.setVisible(true);
}
private class UpdatePasswordAction implements ActionListener
{

@Override
public void actionPerformed(ActionEvent e) {
String username=user.getUsername(); //用户名是从数据库获取的当前User名字
String oldpassword=txtoldpassword.getText().trim(); //旧密码为用户输入
String newpassword=txtnewpassword.getText().trim();
String newpassword2=txtnewpassword2.getText().trim();

if(null!=oldpassword &&!"".equals(oldpassword))
{
if(oldpassword.equals(user.getPassword())){
if(null!=newpassword&&!"".equals(newpassword)&&newpassword.equals(newpassword2))
{
int flag=Dao.updatePassword(username,newpassword);
if(flag>0)
{
JOptionPane.showMessageDialog(null, "密码修改成功!");
user.setPassword(newpassword);
}else{
JOptionPane.showMessageDialog(null, "密码修改失败!");
}
}
else{
JOptionPane.showMessageDialog(null, "两次密码不一致或密码为空!");
txtnewpassword.setText("");
txtnewpassword2.setText("");
txtnewpassword.requestFocus();
}
}else{
JOptionPane.showMessageDialog(null, "旧密码不正确!");
txtoldpassword.setText("");
txtoldpassword.requestFocus();
}
}else
{
JOptionPane.showMessageDialog(null, "旧密码不能为空!");
txtoldpassword.setText("");
txtoldpassword.requestFocus();
}

}

}

}

这是一个小的修改密码的程序,数据库我才用的是mycycle,如上面代码以及异常图片所示,在修改的时候遇到了空指针问题,即使User对象的问题,但是不知道咋解决,求大神帮忙,多谢!
...全文
171 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
逗泥丸的平方 2016-09-18
  • 打赏
  • 举报
回复
弱弱的问一下.. mycycle 是什么数据库..
  • 打赏
  • 举报
回复
一楼二楼说的是,可能是你得到 String username=user.getUsername(); //用户名是从数据库获取的当前User名字、从数据库获取用户名 为null导致的,就像二楼说的一样可以dug在这里打个断点再试下或者System输出来看一下是否有值。
小灯光环 2016-09-18
  • 打赏
  • 举报
回复
User user=LoginFrame.getUser(); debug下这一行,估计这个getUser()方法返回的是null了
___d 2016-09-18
  • 打赏
  • 举报
回复
检查 下 user.getUsername() 是否为空
x1354959688 2016-09-17
  • 打赏
  • 举报
回复
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.zky.www.view.UpdatePassIFrame.<init>(UpdatePassIFrame.java:40)
at com.zky.www.view.MainFrame$UpdatePassAction.actionPerformed(MainFrame.java:91)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

这是异常提示

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧