Ich habe also an einem Password Strength Checker gearbeitet und funktioniert so, dass der Benutzer einen zufälligen Text in ein Textfeld eingibt und sofort ein visuelles Feedback (Aufschlüsselung der Punkte) angezeigt wird. Ich habe auch ein Kontrollkästchen hinzugefügt, das bei der Auswahl das Kennwort verbergen soll, d. H. Alle Zeichen durch Sternchen ersetzen soll, während die eigentliche Texteingabe durch den Benutzer erhalten bleibt. Ein Dokumentlistener wird verwendet, um Änderungen im Textfeld zu verfolgen. (jedes Zeichen bei der Eingabe wird analysiert und dann bewertet)
Meine Frage ist also: Wie genau kann ich die Benutzereingabe mit Sternchen maskieren und dabei ihren ursprünglichen Wert beibehalten?
So sieht die GUI aus:
http://speedcap.net/sharing/screen.php?id=files/51/2f/512f9abb3f92a25add7c593e9d80e9e4.png
Wie kann ich die Benutzereingabe mit Sternchen maskieren und dabei den ursprünglichen Wert beibehalten?
Verwenden Sie JPasswordField
mit der Nice-Funktion jPasswordField.getPassword();
, um das Kennwort als char[]
für die Verwendung abzurufen.
jPasswordField1.setEchoChar('*')
, um die Kennwortzeichen mit *
zu maskieren. jPasswordField1.setEchoChar((char)0);
Wenn Sie einen Wert von 0
angeben, bedeutet dies, dass Sie den Text bei der Eingabe sehen möchten, ähnlich dem Verhalten eines Standards JTextField
.Tutorial und Referenz:
Kennwortfeld verwenden Anstelle des Textfelds
ok danke für tutorialnya,
und ex,
aktion Checkbox/Doppelklick
private void lihatActionPerformed(Java.awt.event.ActionEvent evt) {
if (lihat.isSelected()) {
password.setEchoChar((char)0); //password = JPasswordField
} else {
password.setEchoChar('*');
}
}