&引用;“Windows密钥”+&引用;“其他关键点”Java没有';“t检测”;“其他关键点”;

&引用;“Windows密钥”+&引用;“其他关键点”Java没有';“t检测”;“其他关键点”;,java,keylistener,key-events,Java,Keylistener,Key Events,是否有与主题中的问题相对应的解决方案。如果我按Windows键+空格键,我会得到: 关键字:Windows 我想应该是: 按键类型:Windows 键类型:空格 按键释放:Windows 关键词:空间 我的代码: <Java component>.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { e.c

是否有与主题中的问题相对应的解决方案。如果我按Windows键+空格键,我会得到:

关键字:Windows

我想应该是:

按键类型:Windows
键类型:空格
按键释放:Windows
关键词:空间

我的代码:

        <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();
        }
    });
.addKeyListener(新的KeyListener(){
@凌驾
public void keyTyped(KeyEvent e){
e、 消费();
}
@凌驾
按下公共无效键(按键事件e){
System.out.println(“keyTyped:+KeyEvent.getKeyText(e.getKeyCode()));
e、 消费();
}
@凌驾
公共无效密钥已释放(密钥事件e){
System.out.println(“keyReleased:+KeyEvent.getKeyText(e.getKeyCode()));
e、 消费();
}
});

谢谢

WINDOWS+Space
是WINDOWS系统的有效全局热键,因此不会通知您的程序(并且永远不会通知)。它检测到第一个笔划,因为
WINDOWS
键不是热键(仅在释放时才打开“开始”菜单)。这也是您无法获得释放的原因


我不知道Java是否允许系统范围的钩子,但您可能不得不处理JNI,我认为您不想处理它。

WINDOWS+Space
是WINDOWS系统的有效全局热键,因此不会通知您的程序(而且永远不会)它检测到第一个笔划,因为
WINDOWS
键不是热键(仅在释放时打开“开始”菜单)。这也是您无法获得释放的原因


我不知道Java是否允许系统范围的钩子,但您可能不得不处理JNI,我认为您不想处理它。

我知道JNA。但是,我不能编写任何与事件/挂钩相关的工作代码。我知道JNA。但是,我无法编写任何与事件/挂钩相关的工作代码。