有任何方法可以在运行时屏蔽进入jText区域的值,如果按住空格键应清除内容

问题描述 投票:0回答:1

我有一个需要在运行时屏蔽进入jText区域的值的要求。我能够实现这一点,但问题是带有退格键的情况。当我按顺序(退一格)按退格键时,它会起作用,而如果我一直按该键,则它将事件计数为一个并仅删除一个字符(通过将键事件视为释放的一个键)。

这里是我的代码段:

public void showPrompt() throws InterruptedException {
        sem.acquire();
        this.toFront();
        this.setAlwaysOnTop(true);
        this.setVisible(true);
        if(encryptKeystroke == true) {
            jTextArea.addKeyListener(new KeyListener() {
                public void keyTyped(KeyEvent e) {
                }

                public void keyPressed(KeyEvent e) {
                }

                public void keyReleased(KeyEvent e) {

                    if (e.getExtendedKeyCode() == KeyEvent.VK_BACK_SPACE) {
                        text = text.substring(0, text.length() - 1);
                    }
                    else {
                        text += String.valueOf(e.getKeyChar());
                    }
                    jTextArea.setText(text.replaceAll(".", "*"));
                }
            });
        }

    }

如果我一直按退格键有什么办法,那么无论考虑一个按键事件,它都应删除所有字符?

java swing textarea keylistener
1个回答
0
投票

正如您在评论中所说,要求与密码不完全相同,因此您将不会使用JPasswordField,我想为问题提供解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.