在 JTextFIeld (Java Swing) 中隐藏/显示密码



所以我一直在研究密码强度检查器,它的工作方式是用户在文本字段中输入一些随机文本,然后显示即时视觉反馈(点的细分)。我还添加了一个复选框,在被选中时,应该隐藏密码,即用星号替换所有字符,同时保留用户输入的实际文本。正在使用文档侦听器来跟踪文本字段中的更改。(条目中的每个字符都会被分析,然后评分)

所以,我的问题是,我究竟如何用星号屏蔽用户输入,保留其原始值?

以下是 GUI 的外观:

http://speedcap.net/sharing/screen.php?id=files/51/2f/512f9abb3f92a25add7c593e9d80e9e4.png

我究竟如何用星号屏蔽用户输入,保留其原始值?

使用具有良好功能jPasswordField.getPassword();JPasswordField获取密码char[]使用。

  • 使用 jPasswordField1.setEchoChar('*')* 屏蔽密码字符。
  • 如果要查看要插入的值,请使用 jPasswordField1.setEchoChar((char)0); 将值设置为 0 表示您希望在键入文本时查看文本,类似于标准JTextField的行为。

教程和参考:

  1. 如何使用密码字段
  2. setEchoChar(char)

使用密码字段而不是使用文本字段

好的,

谢谢教程,

和前,

动作切奇框/双击

private void lihatActionPerformed(java.awt.event.ActionEvent evt) {  
   if (lihat.isSelected()) {
      password.setEchoChar((char)0); //password = JPasswordField
   } else {
      password.setEchoChar('*');
   }
}

我按如下方式解决了它:

if ( jPasswordField.getEchoChar() != 'u0000' ) {
    jPasswordField.setEchoChar('u0000');
} else {
    jPasswordField.setEchoChar((Character) UIManager.get("PasswordField.echoChar"));
}

最新更新