是否可以删除在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
}
});
提前致谢!
答案 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
}