JavaFX 8 - 如何在 HTMLEditor 上按下退格键?
JavaFX 8 - How to get Backspace key pressed on HTMLEditor?
我想在按下键盘上的任意键时将对话框标记为脏。因此我有这个代码:
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
editor
是一个 HTMLEditor
控件。它适用于每个 KeyEvent
(CTRL 等也被捕获),但不适用于 Backspace 和 Delete 键事件。我在这里做错了什么?
试试这个:
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...");
}
}
});
我不确定这是否是一个错误,您发布的代码没有按预期工作,但以下代码确实有效。
editor.addEventFilter(KeyEvent.KEY_PRESSED, (KeyEvent event) -> {
System.out.println(event.getCode());
});
可能其他人可以更好地回答,或者您可以提交 issue with the JavaFX team。
行
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
是 shorthand 的,因此等同于
editor.addEventHandler(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
HTMLEditor
似乎正在消耗 Backspace 和 Delete 键事件,在这些事件到达定义为以上。
不添加事件处理程序,而是向编辑器添加键过滤器
editor.addEventFilter(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
因为一旦接收到事件就会调用事件过滤器,先于任何事件处理程序。而事件处理程序是在事件处于冒泡阶段时调用的,即当事件返回父节点时。
我想在按下键盘上的任意键时将对话框标记为脏。因此我有这个代码:
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
editor
是一个 HTMLEditor
控件。它适用于每个 KeyEvent
(CTRL 等也被捕获),但不适用于 Backspace 和 Delete 键事件。我在这里做错了什么?
试试这个:
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...");
}
}
});
我不确定这是否是一个错误,您发布的代码没有按预期工作,但以下代码确实有效。
editor.addEventFilter(KeyEvent.KEY_PRESSED, (KeyEvent event) -> {
System.out.println(event.getCode());
});
可能其他人可以更好地回答,或者您可以提交 issue with the JavaFX team。
行
editor.setOnKeyPressed(event -> dirtyProperty.set(true));
是 shorthand 的,因此等同于
editor.addEventHandler(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
HTMLEditor
似乎正在消耗 Backspace 和 Delete 键事件,在这些事件到达定义为以上。
不添加事件处理程序,而是向编辑器添加键过滤器
editor.addEventFilter(KeyEvent.KEY_PRESSED, event -> dirtyProperty.set(true));
因为一旦接收到事件就会调用事件过滤器,先于任何事件处理程序。而事件处理程序是在事件处于冒泡阶段时调用的,即当事件返回父节点时。