使用jbutton从用户接收用户名和密码

时间:2014-09-14 17:16:52

标签: java jbutton jpasswordfield

我在使用jbuttonactionperformed在java中接收用户名和密码时遇到了麻烦。这段代码有什么问题。我在谷歌搜索,看到一个字符数组用于存储getPassword返回。这是错的吗?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){

    char[] input = {'r','o','o','t'};
    if (jTextField1.getText() == "admin" && jPasswordField1.getPassword() == input) {
        srchnm.main(null);

    }

}   

1 个答案:

答案 0 :(得分:0)

您永远不应该比较字符串并避免使用==比较其他引用类型。改为使用equals(...)方法代替字符串,对于密码,java.util.Arrays类有一个可以使用的equals方法。

if (java.util.Arrays.equals(jPasswordField1.getPassword(), input) && 
           "admin".equals(jTextField1.getText())) {
    srchnm.main(null);
}

或者,你可以改变这个:

"admin".equals(jTextField1.getText())

"admin".equalsIgnoreCase(jTextField1.getText())

Myself(Hovercraft),我喜欢使用String常量来避免调试输入错误:

// at the top
public static final String ADMIN = "admin";

// ....

// a boolean statement in the if block:
ADMIN.equals(jTextField1.getText())