我在接口NativeKeyListener的抽象方法releasedKey中有问题。
它仅以不区分大小写的方式捕获键(仅大写),但我需要它区分大小写。除此之外,keyTyped方法有问题。
Java的JNativeHook的任何解决方案或最佳选择?
下面是我的代码: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);
}
}
虽然没有技术限制,但键入的事件总是在按下键时产生,以便在自动重复期间接收键入的事件。我不知道为什么你想要在释放时获得char,但如果你真的需要它,你需要在键输入时缓冲char,并在释放时耗尽缓冲区。一个简单的堆栈就可以达到这个目的。请注意,并非所有按下键事件都产生键入键的事件。因此,将键压入堆栈,弹出附加字符,并再次在键入中压入,然后最后弹出键释放。只要您的事件调度程序是单线程的,这应该就可以工作。