2017-03-10 84 views
0

非常新的和沒有經驗的編碼器,我目前正在研究我的第一個「從零開始」項目,這將是一個簡單的POS(Point of Sale)餐廳,直到應用程序。JTextArea管理員密碼控制

直到有一個管理面板,允許用戶更改菜單預設和價格,並將需要密碼才能訪問它。

我很sl and,使用了很多進口產品,就像我說的很新。

請看看下面的例子:

if (source == passwordSubmit){ 
     if (logInPassword.getText() == adminPassword){ 
      loginFrame.setVisible(false); 
      adminFrame.setVisible(true);  
     } 
     else logInPassword.append("Incorrect"); 
    } 

該代碼是我ActionListener處理程序,它可以讓用戶輸入文本JTextArealogInPassword內,它的用戶文本與adminPassword預設字符串比較(目前設置爲Password爲默認)

但我的代碼完全不是那麼回事......這是活躍,這給了我一個「不正確的」追加到logInPasswordJTextArea但我在正確的密碼輸入。

我需要一個吸氣或什麼?
不知道我錯過了什麼。

回答

0

當您在Java中使用==運算符時,您只是比較淺參考值。行source == passwordSubmit會工作(因爲兩者都應該引用同一個對象)。但是,對於字符串,可能有兩個字符串對象的值相同。在這種情況下,您必須執行logInPassword.getText().equals(adminPassword)而不是logInPassword.getText() == adminPassword。方法equals通過字符串的值進行比較。

0

使用.equals()

if (source == passwordSubmit){ 
      if (logInPassword.getText().equals(adminPassword){ 
       loginFrame.setVisible(false); 
       adminFrame.setVisible(true);  
      } 
      else logInPassword.append("Incorrect"); 
     } 
+0

優秀謝謝你們! –