[英]JavaFX 8 - How to get Backspace key pressed on HTMLEditor?
我想在按下键盘上的任意键时将对话框标记为脏对话框。 因此,我有此代码:
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
editor
是一个HTMLEditor
控件。 它适用于每个KeyEvent
(与此同时也可以捕获CTRL等),但不适用于Backspace和Delete键事件。 我在这里做错了什么?
线
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
是的简写,因此等同于
editor.addEventHandler(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
在这些事件到达上述定义的密钥处理程序之前, HTMLEditor
似乎正在使用Backspace和Delete键事件。
无需添加事件处理程序,而是将键过滤器添加到编辑器
editor.addEventFilter(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
因为事件过滤器是在接收到事件后立即调用的,所以在任何事件处理程序之前都将被调用。 当事件处于冒泡阶段时,即事件返回父节点时,将调用事件处理程序。
尝试这个 :
final HTMLEditor editor = new HTMLEditor();
editor.setOnKeyReleased(new EventHandler<KeyEvent>() {
public void handle(KeyEvent t) {
if (t.getCode() == KeyCode.BACK_SPACE) {
System.out.println("backspace pressed...");
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.