swing的getPassword()和getText()报空指针错误
不明白 这样为什么不行,提示是因为空指针
if (map.get(new String(password.getPassword()).toString()).equals(username.getText().toString()))
但是可以
String nPassword=new String(password.getPassword());
String nUsername=username.getText();
if (map.get(nUsername).equals(nPassword))
报错:
JTextField username = new JTextField(20);
JPasswordField password = new JPasswordField(20);
/*...不必要的代码我截掉了*/
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String nPassword=new String(password.getPassword());
String nUsername=username.getText();
if (map.get(nUsername).equals(nPassword)) {
// 通过哈希表进行密码和用户名的匹配
// if (map.get(new String(password.getPassword()).toString()).equals(username.getText().toString())){//不懂为什么不行,提示是因为空指针
if (code.getText() .equals(String.valueOf((int) verificationCode))) {
JOptionPane.showMessageDialog(null, "login Successfully");
new FunctionMenuTablet();
}
else JOptionPane.showMessageDialog(null, "Verification code error!");
}
else JOptionPane.showMessageDialog(null, "Login failed!\n Password is incorrect or user does not exist");
}
});
如果你的username.getText() 为null的话,toString()是无法执行的。
map.get(new String(password.getPassword())这个输出一下。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!