Java if语句不适用于用户名和密码

Java if语句不适用于用户名和密码,java,Java,有人能帮忙吗?我不知道为什么这句话行不通,有人知道吗 我所要做的就是如果用户名和密码匹配,关闭当前gui窗口并打开另一个窗口 在任务单上,当用户名和密码正确时,仍会显示不正确 我敢肯定这是件很愚蠢的事 String username = usernameField.getText(); char[] password = passwordField.getPassword(); username = username.toLowerCase(); String p

有人能帮忙吗?我不知道为什么这句话行不通,有人知道吗

我所要做的就是如果用户名和密码匹配,关闭当前gui窗口并打开另一个窗口

在任务单上,当用户名和密码正确时,仍会显示不正确

我敢肯定这是件很愚蠢的事

    String username = usernameField.getText();
    char[] password = passwordField.getPassword();
    username = username.toLowerCase();
    String passwordString = new String (password);
    passwordString = passwordString.toLowerCase();
    String loginUsername = "cj410";
    String loginPassword = "email";
    if (username == loginUsername && passwordString == loginPassword){
        dispose();
        homePage hp = new homePage();
        hp.setVisible(true);
    } else {
        LoginError le = new LoginError();
       le.setVisible(true);
    }

您使用的是引用相等的
==
。您需要调用
equals()

if(loginUsername.equals(username) && loginPassword.equals(passwordString ) {
   // etc
}

如上所述使用它进行比较,因为如果
username
passwordString
为null,如果您以相反的方式比较它们,它将抛出
NullPointerException

在Java/Android中,==用于原语比较,equals()用于对象比较。