2015-01-16 2 views
-1

Пожалуйста, кто-нибудь может помочь? Я не уверен, почему это утверждение не работает, есть ли у кого-нибудь идеи?если инструкция не работает для имени пользователя и пароля

все, что я хочу, чтобы это произошло, если совпадение имени пользователя и пароля закрывает текущее окно 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); 
    } 
+0

В Java/Android, == для примитивного сравнения, equals() предназначен для сравнения объектов. – kosa

ответ

1

Вы используете ==, который является эталонным равенством. Вместо этого вам нужно позвонить equals().

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

Сравните использовать его, как указано выше, потому что если username или passwordString равны нулю, он будет бросать NullPointerException если сравнивать их с точностью до наоборот.

Смежные вопросы