2017-07-13 37 views
-2

我正在練習一個簡單的Java GUI,通過使一個沒有數據庫的登錄系統,但我的if語句使用.equals不起作用,因爲它總是說錯誤的密碼。等於方法不起作用

工作,但我認爲這是不是安全的

String user = USERNAME.getText(); 
String pass = PASSWORD.getText(); 
if(user.equals("username") && pass.equals("password")){ 
    JOptionPane.showMessageDialog(null, "Welcome to GUI"); 
} else { 
    JOptionPane.showMessageDialog(null, "Wrong Username and password");  
} 
+5

'equals'是大小寫敏感的,你確定你輸入正確的價值觀?也許增加'System.out.println(「[」+ user +「]/[」+ pass +「]」);'驗證值 – MadProgrammer

+0

另外,請確保你沒有空格或類似的東西。始終修剪。 – Tavo

+0

用戶和通行證是否低於csae?並沒有空格? –

回答

0

由於@MadProgrammer指出,equals()是大小寫敏感的方法。

"password1" is NOT EQUAL to "PASSWORD1" //The strings should match with case. 

同時,爲了避免NullPointerException一個更好的辦法是

String user = USERNAME.getText(); 
String pass = PASSWORD.getText(); 
if ("username".equals(user) && "password".equals(pass)) { 
    JOptionPane.showMessageDialog(null, "Welcome to GUI"); 
} else { 
    JOptionPane.showMessageDialog(null, "Wrong Username and password"); 
} 
+0

是@MadProgrammer,我已經進入正確的用戶名和密碼,但它仍然需要我的else語句 – MisterRious