是否有任何解决方案与主题中的问题相对应。如果我按下例如Windows键+空格,我得到:
keyTyped:Windows
我想它应该是:
keyTyped:Windows
keyTyped:空格
keyReleased:Windows
keyReleased:Space
我的代码:
<Java component>.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
e.consume();
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("keyTyped: " + KeyEvent.getKeyText(e.getKeyCode()));
e.consume();
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased: " + KeyEvent.getKeyText(e.getKeyCode()));
e.consume();
}
});
谢谢!
答案 0 :(得分:4)
WINDOWS + Space
是Windows系统的有效全局热键,因此不通知您的程序(并且永远不会。)它检测到第一个笔划,因为WINDOWS
键不是热键(并且只展开发布后的“开始”菜单。)这就是你没有获得发布的原因。
我不知道Java是否允许系统范围的挂钩,但你可能不得不搞乱JNI,我认为你不想处理它。