Java JPasswordField中指定的字符数

Java JPasswordField中指定的字符数,java,Java,我的java代码中有一个JPasswordField,我希望JPasswordField只能从用户那里获得7个字符作为输入,但不能超过7个字符。请说明如何执行此操作。将ActionListener添加到JPasswordField以执行此操作: passwordField.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) {

我的java代码中有一个JPasswordField,我希望JPasswordField只能从用户那里获得7个字符作为输入,但不能超过7个字符。请说明如何执行此操作。

将ActionListener添加到JPasswordField以执行此操作:

 passwordField.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        JPasswordField field = (JPasswordField) event.getSource();
        char[] password = field.getPassword();

        if (password.length > 7) {
            System.out.println("Password must contain 7 characters!");
        }
    }
});
或者使用keyListener

passwordField.addKeyListener(new KeyAdapter() {
    @Override
    public void keyReleased(KeyEvent event) {
        JPasswordField field = (JPasswordField) event.getSource();
        char[] password = field.getPassword();

        if (password.length > 7) {
            System.out.println("Password must contain 7 characters!");
        }
    }
});

这不会阻止用户输入超过7个字符,如用户3808922要求的字符。他应该使用KeyListener并监听keyTyped事件。这样他就可以对密码字段中输入的每个字符做出反应。