不依法度 2021-11-15 16:52 采纳率: 100%
浏览 109
已结题

Java Swing的getPassword()和getText()报空指针错误

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))

报错:

img

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");
            }
        });
  • 写回答

3条回答 默认 最新

  • CSDN专家-Time 2021-11-15 16:57
    关注

    如果你的username.getText() 为null的话,toString()是无法执行的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题