Java:处理组合键盘输入

MrG*_*MrG 5 java keyboard event-handling

在一个注册后面的KeyListener(即JButton)之间分隔F1和ie CTRL+的F1相应SHIFT- CTRL+ 的正确方法是什么F1

public void keyPressed(KeyEvent event) {
    int key = event.getKeyCode();

    logger.debug("KeyBoard pressed char(" + event.getKeyChar() + ") code (" + key + ")");
}
Run Code Online (Sandbox Code Playgroud)

..总是给我112 F1,113 F2等.我知道我可以通过自己处理keyReleased for CTRL/ SHIFT/ ALT/ etc 的keyPressed()来处理它,但我希望有更好的方法.

非常感谢!!!

Mid*_*hat 4

解决方案在于KeyEvent(InputEvent)的父级

  1. 使用 isAltDown、isControlDown、isShiftDown 方法或
  2. 使用 getModifiers 方法