getPassword() 给了我一个字符数组,但我希望看起来像这样的密码******
显示出来MyPaSwOrd
,我该怎么做?
伙计们,我不想提取密码,我只想在 JPasswordField() 中写成“输入您的密码”,当用户点击它时,它就会消失,然后他输入自己的密码,就像这样* * * * * *
两种方式:
编辑:
如果您想在您的字段中显示“输入密码”之类的文本并在单击时消失,请尝试以下操作:
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 方法。否则密码会消失。但这应该不是问题。
试试这个:
String password = new String(passwordField.getText());
但是,文档明确指出您不应该使用字符串来检查/操作/传递密码信息。
编辑 :
您可以JField
使用“在此处输入您的密码”作为其普通名称,text
然后单击listener
它。每当用户单击它时,将其删除JTextField
并替换为JPassword
具有焦点
肮脏的方式
制作一个密码字段和一个文本字段...当您选中该框时,密码字段将变为不可见,而文本框将变为可见。
在未选中的情况下,passwordField 将可见,而 textfield 将不可见。
最后,使文本字段复制密码字段中输入的文本。