【问题标题】:How to Handle Case Sensitivity issue with JNativeHook Library如何使用 JNativeHook 库处理大小写敏感问题
【发布时间】:2016-08-12 04:57:11
【问题描述】:

接口NativeKeyListener的抽象方法releasedKey有问题。

它仅以不区分大小写的方式(仅大写)捕获键,但我需要它区分大小写。除此之外,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); 
    } 
}

【问题讨论】:

  • 你能发布你的代码吗?

标签: java open-source case-sensitive


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-01-05
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多