2017-03-10 5 views
0

Sehr neuer und unerfahrener Programmierer, ich arbeite gerade an meinem ersten 'von Grund auf' Projekt, das ein einfaches POS (Point Of Sale) Restaurant bis zur Anwendung sein wird.JTextArea admin Passwortkontrolle

Die Kasse verfügt über ein Admin-Panel, mit dem der Benutzer die Menüvoreinstellungen und Preise ändern kann und für den Zugriff ein Passwort benötigt wird.

Ich bin schlampig und mit vielen Importen wie ich bin wie gesagt sehr neu.

Bitte nehmen Sie sich einen Blick auf die folgenden:

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

Dieser Code ist in meinem ActionListener Handler, die der Benutzer Text in das JTextArea genannt logInPassword eingeben können und vergleicht den Benutzertext mit dem adminPassword voreingestellte Zeichenfolge (derzeit auf Password als Standard)

aber mein Code funktioniert nicht ganz ... es ist aktiv, wie es mir eine „falsche“ gibt hängen in die logInPasswordJTextArea aber ich bin in das richtige Passwort eingeben.

Brauche ich einen Getter oder etwas?
Nicht sicher, was ich vermisse.

Antwort

0

Wenn Sie den Operator == in Java verwenden, werden nur oberflächliche Referenzwerte verglichen. Die Zeile source == passwordSubmit würde funktionieren (da beide auf dasselbe Objekt verweisen sollen). Bei Strings ist es jedoch möglich, zwei String-Objekte zu verwenden, deren Wert gleich ist. In diesem Fall müssen Sie logInPassword.getText().equals(adminPassword) statt logInPassword.getText() == adminPassword tun. Die equals Methode vergleicht nach dem Wert der Zeichenfolgen.

0

Verwendung .equals()

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

Ausgezeichnet danke euch beiden! –