Text im JPasswordField

Bastik1007

Aktives Mitglied
Ich wollte als Übung mit Frames mal einfach ne Accountüberprüfung machen.

ich hab dann das hier programmiert:
Java:
		String acc1 = textField.getText();
		String pw1 = p.getText();
		String acc2 = text.getText();
		String pw2 = p1.getText();
		
		if (acc1 == acc2 && pw1 == pw2) {
			anzeige.setText("Die Kontodaten stimmen überein!");
		} else 
			anzeige.setText("Die Kontodaten stimmen nicht  überein!");

Mit den variablen usw. stimmt alles, aber warum wird in Eclipse mein getText von jeweils p.getText und p1.getText durchgestrichen ? Als Meldung kommt dann immer "The method getText() from the type JPasswordField is deprecated." Es ist zwar weiterhin ausführbar aber es erscheint immer "Die Kontodaten stimmen nicht überein!". ?
 
Zuletzt bearbeitet:
Strings vergleicht man mit [c]equals(String);[/c] und bei JPasswordfield nutzt man [c]getPassword() [/c] um ein char-array zurückzubekommen.

Edith: @Sonecc: Ja 🙂?
 
Zuletzt bearbeitet von einem Moderator:
Deprecated bedeutet, dass die entsprechende Methode nicht mehr verwendet werden sollte. Stattdessen sollte eine andere Methode verwendet werden.
Die Dokumentation hilft einem da weiter und teilt einem in der Regel mit, welche Methode stattdessen benutzt werden soll:

String getText()
Deprecated. As of Java 2 platform v1.2, replaced by getPassword.
Verwende also statt getText() die Methode getPassword()...


Zu deinem Problem, dass die Passwörter nie übereinstimmen, Strings vergleicht man mit ihrer equals Methode.
Das == prüft nur ob es das selbe Objekt ist, also ob die Referenz gleich ist. Was du aber wissen willst, ist ob die Strings den gleichen Text enthalten. Dafür musst du wie gesagt die .equals methode verwenden

Edit: Boah Tomate_Salat :/
 
Gut, das hab ich umgeändert zur getPassword(); und .equal() benutzt

dann hab ich das so gemacht: String acc1 = textField.getText();
Java:
		char [] pw1 = p.getPassword();
		String acc2 = text.getText();
		char[] pw2 = p1.getPassword();

Es wird aber weiterhin angezeigt, das die eingaben nicht korrekt waren, bei eigentlicher korrekten eingabe?
 
Zuletzt bearbeitet von einem Moderator:
[c]char[/c]-Arrays vergleicht man am besten mit Arrays.equals(char[], char[]).

Nachtrag: … und Java-Code formatiert man im Forum am besten mit [noparse]
Java:
[/noparse]-Tags: [noparse][code=Java]hier Java Code einfügen
[/noparse]

Ebenius
 
Zuletzt bearbeitet:
Ich glaub, ich bin zu doof dafür :/

Code:
Arrays.equals(char[]pw2,char[]pw1)
hab ich jetzt aber das funktioniert nicht, import java.util.*; ist aber da


Edit: ich hatte eig schonmal die lösung mit Arrays.equals(pw2,pw1); aber da hatte ich als bedingung falls acc ODER pws übereinstimmen, soll bla bla ausgegeben werden, also hatte ich gedacht, etwas mit der pw bedingung stimmt nicht, das thema hat sich also erledigt 🙂

VIelen dank an alle ;D
 
Zuletzt bearbeitet:

Zurück
Oben