gpt4 book ai didi

java - 禁用 JavaFX TextField 中的字符删除键

转载 作者:行者123 更新时间:2023-12-01 10:34:18 25 4
gpt4 key购买 nike

标题几乎说明了一切。我需要禁用 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
}
});

但由于某种原因,即使事件被消耗,按删除键时结束字符仍然会被删除。

感谢您的宝贵时间!

最佳答案

KEY_TYPED 仅在按下生成 UTF 输出的键后才会触发事件。按下 BACK_SPACEDELETE 按键时不会生成 KEY_TYPED 事件。请改用 KEY_PRESSED 事件。

mytextfield.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.BACK_SPACE || event.getCode() == KeyCode.DELETE) {
event.consume(); // to cancel character-removing keys
}
}
});

event.consume() 放入 if block 中只会取消这些按钮。其他人将照常工作。

关于java - 禁用 JavaFX TextField 中的字符删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com