问题
So I've been working on a Password Strength Checker and the way it works is that the user enters some random text into a textfield and then instantaneous visual feedback (breakdown of points) is displayed. I've also added a checkbox, which on being selected, should hide the password i.e. replace all the chars with asterisks, while preserving the actual text input by the user. A document listener is being used to keep track of changes inside the textfield. (each char on entry gets analyzed and then scored)
So, my question is, how exactly do I mask the user input with asterisks preserving its original value?
Here's what the GUI looks like:
http://speedcap.net/sharing/screen.php?id=files/51/2f/512f9abb3f92a25add7c593e9d80e9e4.png
回答1:
How exactly do I mask the user input with asterisks preserving its original value?
Use the JPasswordField
which has nice function jPasswordField.getPassword();
to get the password as char[]
to work with.
- Use
jPasswordField1.setEchoChar('*')
to mask the password characters with*
. - If you wish to see the value you are inserting use
jPasswordField1.setEchoChar((char)0);
Setting a value of0
indicates that you wish to see the text as it is typed, similar to the behavior of a standardJTextField
.
Tutorial and Reference:
- How to use Password Fields
- setEchoChar(char)
回答2:
Use Password Field Instead of using textfield
回答3:
ok thanks for tutorialnya,
and ex,
action chechbox / double click
private void lihatActionPerformed(java.awt.event.ActionEvent evt) {
if (lihat.isSelected()) {
password.setEchoChar((char)0); //password = JPasswordField
} else {
password.setEchoChar('*');
}
}
来源:https://stackoverflow.com/questions/19755259/hide-show-password-in-a-jtextfield-java-swing