如何使用JNativeHook库处理大小写敏感性问题

时间:2016-08-12 04:57:12

标签: java open-source case-sensitive

我在接口 NativeKeyListener 的抽象方法 releasedKey 中遇到了问题。

它只捕获Case INSENSITIVE Manner(仅大写)中的键,但我需要它区分大小写。除此之外, keyTyped 方法存在问题。

JNativeHook for Java的任何解决方案或最佳替代方案?

这是我的代码:

public void nativeKeyReleased(NativeKeyEvent e) {
    if(e.getKeyCode()==NativeKeyEvent.VC_ENTER) 
    { 
        line+="<Pressed ENTER>";   
        System.out.println(line); line=""; 
    } 
    else 
    { 
        line+=NativeKeyEvent.getKeyText(e.getKeyCode()); 
        display(e); 
    } 
}

1 个答案:

答案 0 :(得分:0)

虽然没有技术限制,但键输入时始终会生成键输入事件,以便您在自动重复期间接收键输入事件。我不确定你为什么要在发布时获取char,但是如果你真的需要它,你需要缓冲键入键上的char并释放缓冲区。一个简单的堆栈应该可以解决问题。 请注意,所有按键事件都不会产生键入事件。因此,按下键向下键,弹出追加字符并再次按下键入,然后最后弹出键释放。只要您的事件调度程序是单线程的,这就应该有效。