如何侦听所有组件上的按键(在 Java Swing 内)?

2023-11-27

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(使用前将#替换为@)

如何侦听所有组件上的按键(在 Java Swing 内)? 的相关文章

随机推荐