我正在使用java中的jPasswordField
来创建登录系统。
我使用jTextField
作为名称输入,jPasswordField
作为密码。我想在我的程序中创建一个“显示字符”选项,允许用户查看他在密码字段中输入的字符。
我试过了
但这不起作用,因为它以酯类(*****
)形式显示所有内容。
请帮忙......
答案 0 :(得分:10)
hidePasswordCheckbox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
httpProxyPassword.setEchoChar('*');
} else {
httpProxyPassword.setEchoChar((char) 0);
}
}
});
你必须使用httpProxyPassword.setEchoChar((char) 0);
。
此处httpProxyPassword
是您可以根据自己的使用文本框的名称。
答案 1 :(得分:1)
我查了一下,发现默认值是*
,但它会根据外观而变化。因此,检查该默认值并将其放回setEchoChar
方法还要记住类型转换(char)。希望它有所帮助
/*
* here set defaultt an int variable and
* then print that value using System.out.println(defaultt);
* and then check that value and use it in place of that default value eg:-
*/
int defaultt = psswrd.getEchoChar();
System.out.println(defaultt);
//now check the value
chbx_psswrd.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
psswrd.setEchoChar((char)<***keep that value here directly***>);
} else {
psswrd.setEchoChar((char) 0);
}
}
});
答案 2 :(得分:0)
使用此改进的代码,您可以将echo char更改回其默认值,而不是*
char default = psswrd.getEchoChar();
chbx_psswrd.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
psswrd.setEchoChar(default);
} else {
psswrd.setEchoChar((char) 0);
}
}
});