我正在使用JNativeHook来听取按键操作。按住键时,假设计算机应该键入键4次,每个JNativeHook方法将注册更多。
我试过了:
public void nativeKeyReleased(NativeKeyEvent e) {
System.out.println("registered key release");
}
public void nativeKeyPressed(NativeKeyEvent e) {
System.out.println("registered key press");
}
public void nativeKeyTyped(NativeKeyEvent e) {
System.out.println("registered key type");
}
所有这些方法都会在按下按键时注册错误的按键次数。我不认为这是JNativeHook库的一个小故障,因为它几乎与Java的KeyListener相同,除了它是全局的。
提前致谢。
答案 0 :(得分:2)
当用户按下某个键时,将调用keyPressed,然后调用keyTyped,最后当用户从该键释放他/她的手指时,调用keyReleased。尝试打印出keyPressed,keyTyped和keyReleased消息,而不是在任何地方输入“registered”,以便了解发生了什么。
答案 1 :(得分:0)
我输入的代码只是一个示例。在我的实际程序中,我可以确认所有三个都注册的次数超过了需要的次数。
如果是这种情况,并且您仍然遇到问题,请report a bug。由于某种原因,您的平台上无法启用可检测的自动重复。