应用程序范围的键盘快捷键-Java Swing
时间:2020-03-06 14:24:57 来源:igfitidea点击:
我想为Java Swing应用程序创建一个应用程序范围的键盘快捷键。
遍历所有组件并在每个组件上添加快捷方式,具有与焦点相关的副作用,并且似乎是蛮力解决方案。
有人有更清洁的解决方案吗?
解决方案
安装自定义KeyEventDispatcher。 KeyboardFocusManager类也是使用此功能的好地方。
KeyEventDispatcher
对于每个窗口,请使用条件为" WHEN_IN_FOCUSED_WINDOW"的" JComponent.registerKeyboardAction"。或者使用:
JComponent.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(keyStroke, command); JComponent.getActionMap().put(command,action);
如registerKeyboardAction API文档中所述。