java - 如何显示密码中的字符

标签 java passwords character

getPassword() 给了我一个字符数组,但我希望看起来像这样的密码 ****** 像这样显示 MyPaSwOrd,如何我可以这样做吗?

伙计们,我不想提取密码,我只想在 JPasswordField() 中写下“输入您的密码”,当用户单击它时,它消失了,然后他输入了自己的密码,这是这样的 * * * * * *

最佳答案

两种方式:

  1. 使用 setEchoChar 方法(参见 here)并将值设置为 0(如 JavaDoc 解释的那样)
  2. 使用通用的 JTextField

编辑:

如果您希望在您的字段中输入“输入 PW”之类的文本并在单击时消失,请尝试如下操作:

public class JPassword {

    public static void main(String[] args) {

        JFrame frame = new JFrame();

        final JPasswordField field = new JPasswordField();

        field.addFocusListener(new FocusListener() {

            @Override
            public void focusLost(FocusEvent arg0) {

                char c = 0;
                field.setEchoChar(c);
                field.setText("Enter PW");

            }

            @Override
            public void focusGained(FocusEvent arg0) {

                char c = 1;
                field.setEchoChar(c);
                            field.setText("");
            }
        });

        char c = 0;
        field.setText("Enter PW");
        field.setEchoChar(c);

        frame.setLayout(new FlowLayout());
        frame.getContentPane().add(new JButton("test"));
        frame.getContentPane().add(field);
        frame.pack();
        frame.setVisible(true);
    }
}

注意:您需要检查用户是否输入了密码。如果他有,请不要执行 focuseGained 方法。否则密码将消失。但这应该不是问题。

关于java - 如何显示密码中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735302/

相关文章:

node.js - 使用 pbkdf2 的 SALT 和 HASH

android - Android 模拟器上不显示 Tifinagh 字符

c - 这个 (char*)&x cast 的行为定义明确吗?

java - Android,如何使用java从资源id获取xml资源值

菜单中的 Java Swing JSeparator 放置不正确

python - 如何使这段代码与其他程序交互?

Java netscape.javascript.JSObject 用于存储cookie

java - 为什么 java.net.URI 不解析权限部分?

java - 如何在Java应用程序中处理多种语言?

c - 如何使用 scanf 函数读取特殊字符(标点符号、连字符、冒号)?