我知道你可以調用JComponent.setFocusable(false)
來使Java組件不被關注。但是因爲我在應用程序中有很多組件,所以我想知道是否有比在幾十個對象中調用它更簡單的方法。像UIDefaults
值?是否有可能使JComponent默認爲不可聚焦?
我在找這個,因爲我的應用程序全屏運行,JFrame
上有一個KeyListener
,它偵聽按鍵觸發各種事件。但是我發現無論何時點擊一個JButton
或其他添加的組件,它都會獲得焦點,關鍵事件永遠不會到達JFrame
。因此,無論孩子有什麼焦點,都可以通過單個父容器捕獲關鍵事件的更優雅的方式來解決我的問題。
只是一個小心當心:菜單加速器只能如預期的,如果他們是唯一的 - 與聚焦時窗口綁定是最後一個只有在沒有人想要的時候才能看到它們它們。 – kleopatra
我使用Key Bindings而不是KeyListener,而且這樣做。至少有一次,我開始爲InputMap使用JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT標誌。 –
@Mike,然後論壇程序是「接受」你使用的答案。 – camickr