我正在开发一个简单的applet,它有一个simpe登录界面.
为了简洁起见,我有两个用于用户名和密码的JTextFields,我也用它作为标签.即,首先,用户名JTextField将预填充灰色文本"username"和密码JTextField预填充"简单密码".
然后,只要JTextField获得焦点,我就会清除预填充文本并将文本颜色设置为黑色.类似于stackoverflow的搜索框,但是在摇摆中.
现在为了安全起见,我想在密码JTextField获得焦点时屏蔽密码字段(但当然仍然可以使用预先填写的文本清晰可读).JPasswordField不允许切换掩码/取消掩码.
有关在我的简单applet中获得此功能的简单方法的任何想法?
您可以使用setEchoChar((char)0)禁用掩蔽回显字符; 如JavaDoc中所述.
一个例子
final JPasswordField pass = new JPasswordField("Password");
Font passFont = user.getFont();
pass.setFont(passFont.deriveFont(Font.ITALIC));
pass.setForeground(Color.GRAY);
pass.setPreferredSize(new Dimension(150, 20));
pass.setEchoChar((char)0);
pass.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
pass.setEchoChar('*');
if (pass.getText().equals("Password")) {
pass.setText("");
}
}
public void focusLost(FocusEvent e) {
if ("".equalsIgnoreCase(pass.getText().trim())) {
pass.setEchoChar((char)0);
pass.setText("Password");
}
}});
Run Code Online (Sandbox Code Playgroud)
格雷茨,GHad
| 归档时间: |
|
| 查看次数: |
4273 次 |
| 最近记录: |