Java 是否可以将键入的字符撤消到JText区域?
在JavaSwing中是否可以删除键入JTextArea的字符?或者阻止添加某些字符?我不是说替换,我特别想删除/阻止由关键事件添加的角色。下面是一些示例代码来说明我想做什么:Java 是否可以将键入的字符撤消到JText区域?,java,swing,events,Java,Swing,Events,在JavaSwing中是否可以删除键入JTextArea的字符?或者阻止添加某些字符?我不是说替换,我特别想删除/阻止由关键事件添加的角色。下面是一些示例代码来说明我想做什么: input.addKeyListener(new KeyListener(){ @Override public void keyTyped(KeyEvent e){ //Nothing to do here } @O
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
}
});
提前谢谢 您可以将文本字段的内容存储在按键方法的末尾。 如果随后遇到不需要的键,可以将textfield的内容设置为存储值并返回
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
}
@如果输入的字符等于Key code call keyevent.consume(),则必须找到不希望在该文本区域中输入的字符,并获取该字符的密钥代码;这是一个非常好的主意!谢谢大家!<代码>这是一个非常好的主意代码>-不是真的。键侦听器与AWT一起使用。然而,当使用Swing时,您可以访问更新更好的API。相反,您应该使用
文档过滤器
。有关更多信息和示例,请阅读上Swing教程的部分。