是否可以将类型字符撤消到JTextarea中?

时间:2014-07-19 11:56:05

标签: java swing events

是否可以删除在Java Swing中键入JTextArea的字符?或阻止某些字符被添加?我不是在谈论替换,我特别想删除/阻止由关键事件添加的字符。这里有一些示例代码来说明我想要做的事情:

      input.addKeyListener(new KeyListener(){

        @Override
        public void keyTyped(KeyEvent e){
            //Nothing to do here
        }

        @Override
        public void keyPressed(KeyEvent e){
            if(condition == true){
            e.undo();
            //I want to remove the key that character that was inserted with this action
            }
        }

        @Override
        public void keyReleased(KeyEvent e){
            //Nothing to do here
        }

    });

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以将文本字段的内容存储在keyPressed方法的末尾。 如果您遇到了一个您不想要的密钥,您可以将文本字段的内容设置为存储的值并返回。

private String oldValue;

@Override
    public void keyPressed(KeyEvent e){
        if(condition == true){
            setText(oldValue);
            return;
        }
        oldvalue = getText();//Replace getText() with correct getter for current value
    }