2016-04-01 41 views
1

正如您可能已經猜到的,我的登錄代碼中有一個小錯誤。這不是主要的,它不會有太大的影響,但如果我明白了它會更專業。我花了最近48小時試圖弄清楚代碼,我知道這將是一個超級簡單和容易找到這裏的專業人士的東西。但。這是我的代碼。登錄代碼中的錯誤

class loginButton implements ActionListener{ 

    public void actionPerformed(ActionEvent e) { 
     if ("Username".equalsIgnoreCase(textUsername.getText())) 
      if ("Password".equalsIgnoreCase(textPassword.getText())) { 
      JOptionPane.showMessageDialog(null, "Login Success."); 
      CowboyCorral success = new CowboyCorral(); 
      success.setVisible(true); 
      dispose(); 
     }else JOptionPane.showMessageDialog(null, "Login Failed."); 
      } 
     } 
    buttonLogin.addActionListener(new loginButton()); 

在這段代碼中,你可以看到,如果我的用戶名是「用戶名」和密碼是「密碼」(超安全),那麼它給你提示「登錄成功」,並將其部署在窗口打開我的項目中的第二個文件。這很有用。

但問題是,如果輸入的憑據是錯誤它不會顯示'登錄失敗'提示。

同樣,這可能是一個簡單的解決方案,我保證我會感覺不好,但我仍然在學習,並且會愛上某人來看看它,並告訴我在哪裏搞砸了。提前致謝!

+0

我想我明白了這個問題。讓我在發佈答案之前檢查一兩件事:您能否嘗試輸入不正確的用戶名並查看是否顯示「登錄失敗」對話框。我希望它會顯示。 –

+0

只需雙重檢查,將不會顯示。 –

+0

對於用戶名和密碼,您可以使用textUsername.getText()。toString()代替textUsername.getText() –

回答

1

想通了!這是我改變我後,其他變化

if ("Username".equalsIgnoreCase(textUsername.getText())) 
     if ("Password".equalsIgnoreCase(textPassword.getText())) { 

if ("Username".equalsIgnoreCase(textUsername.getText()) && ("Password".equalsIgnoreCase(textPassword.getPassword().toString()))) { 

而且由於兩次檢查,而不是一個存在,它會檢查他們在同一時間。發生的是它會說'是的,你的用戶名是正確的。你的密碼是否正確?如果不是,那麼我將顯示您的登錄失敗。現在它將同時檢查它們,並根據輸入的內容返回代碼的一部分。

+0

這是我準備讓你做的第二件事。謝謝 –