我通过以下方式添加我的事件处理程序:
getCorrelatingView().addEventHandler(KeyEvent.KEY_PRESSED, getKeyEventHandler());
getKeyEventHandler()
是:
private EventHandler<KeyEvent> getKeyEventHandler() {
return keyEvent -> {
System.out.println("Key received + " + keyEvent.toString());
}
}
getCorrelatingView()
确实具有焦点,因为按下除了箭头键之外的每个键时都会打印出键接收的消息。这包括字母和箭头键和修饰符(例如Control + Up
)。 Up
本身不会触发关键事件。
此外,根据研究,我补充说:
getCorrelatingView().setFocusTraversable(false);
getCorrelatingView().requestFocus();
将initialize
方法发送到getCorrelatingView()
的控制器。这些没有任何区别。
如何在getKeyEventHandler()
内收听未经修改的箭头键?