0
我正在嘗試跟蹤全局鍵事件,特別是正在按下的箭頭鍵。對於這一點,我附加處理程序到當前活動場景:如果節點有焦點,某些關鍵事件不會到達場景
scene.setOnKeyPressed(event ->
System.out.println("KEY PRESSED: " + event.getCode())
)
然而,雖然總是被檢測封樣,ctrl和標籤最鍵,空格鍵和方向鍵只有在沒有元素具有焦點工作。就是說,就像我在窗口中的任何地方點擊一樣,某些元素會獲得焦點,按下空間或箭頭不會再觸發事件。通過CSS樣式,我發現一旦場景被點擊,總是存在一個焦點元素,並且在這種情況下上面的鍵停止工作。
我的猜測是,重點節點聽重點事件,並拒絕如果它是空間或箭頭泡沫。我的問題是:
- 爲什麼這些鍵被捕獲?我沒有看到任何UI組件都需要處理箭頭鍵和空格鍵事件。
- 我可以防止節點竊取關鍵事件,即讓它們始終冒泡嗎?如果沒有,是否有另一種檢測按鍵的方法?
您可以將事件過濾器添加到場景中,然後在滾動窗格消耗它們之前捕獲按鍵事件。 –