0
我正在尝试跟踪全局键事件,特别是正在按下的箭头键。对于这一点,我附加处理程序到当前活动场景:如果节点有焦点,某些关键事件不会到达场景
scene.setOnKeyPressed(event ->
System.out.println("KEY PRESSED: " + event.getCode())
)
然而,虽然总是被检测封样,ctrl和标签最键,空格键和方向键只有在没有元素具有焦点工作。就是说,就像我在窗口中的任何地方点击一样,某些元素会获得焦点,按下空间或箭头不会再触发事件。通过CSS样式,我发现一旦场景被点击,总是存在一个焦点元素,并且在这种情况下上面的键停止工作。
我的猜测是,重点节点听重点事件,并拒绝如果它是空间或箭头泡沫。我的问题是:
- 为什么这些键被捕获?我没有看到任何UI组件都需要处理箭头键和空格键事件。
- 我可以防止节点窃取关键事件,即让它们始终冒泡吗?如果没有,是否有另一种检测按键的方法?
您可以将事件过滤器添加到场景中,然后在滚动窗格消耗它们之前捕获按键事件。 –