I would like to listen for key combinations such as Control+S without adding key listeners to each component in my Swing application. How can I achieve this?
有可能的。
KeyboardFocusManager.getCurrentKeyboardFocusManager()
.addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
System.out.println("Got key event!");
return false;
}
});
这将抓住所有关键事件。返回 false 允许键盘焦点管理器恢复正常的按键事件分派到各个组件。
如果您想捕获组合键,则可以保留一组“按下的键”。每当按下某个键时,将其添加到集合中并检查集合中已有哪些键。当释放某个键时,将其从集合中删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)