【发布时间】:2016-01-19 08:02:36
【问题描述】:
标题几乎说明了一切。我需要禁用 JavaFX TextField 中的字符删除键。删除字符键是指 DEL 和 SUPPR。
现在,这就是我所拥有的:
mytextfield.addEventFilter(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
if (event.getCharacter().matches("[0-9]")) {
// some stuff that works perfectly here
}
event.consume(); // to cancel everything but 0-9 keys
}
});
但由于某种原因,即使事件被消耗,按下删除时结束字符仍然会被删除。
感谢您的宝贵时间!
【问题讨论】:
-
我想到的第一个想法是:将
TextField#getText保存到(本地)变量并在使用后恢复它(如果没有添加数字)。 -
如果我捕捉到 DELETE 键事件,对我有用。请提供 MCVE。
-
@Roland 调用了 handle(KeyEvent) 方法,但即使事件被消费,最后一个字符仍然会被删除。我给你的 sn-p 和我用的一样少
-
这不完整。