这听起来可能很简单也很愚蠢,但就我而言,我找不到一种方法让鼠标监听器在不必在组件上的情况下执行mousePressed。void mousePressed(){}似乎没有按我希望的方式工作。
从本质上讲,我正在制作一个java程序,它的目标是在没有图形的情况下工作,并在后台进行操作。因此,例如,如果你点击chrome,它仍然会影响程序。
我尝试的是这个,我意识到这是非常不正确的。
class MKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
moveMouse.playing = false;
}
}
正如建议的那样,我尝试了JNativeHook库,但它似乎没有按照我认为的方式工作:
public class mousepresstest implements NativeMouseInputListener{
@Override
public void nativeMouseClicked(NativeMouseEvent e) {
System.out.println("worked");
}
}
它没有在按下鼠标时打印文本,我是不是遗漏了什么?
Java鼠标侦听器仅适用于swing/awt组件,也适用于来自同一运行进程的组件。
如果您想监听其他应用程序的鼠标/键盘事件,请使用JNativeHook图书馆您可以安装全局键盘挂钩,并监听按键或鼠标事件的鼠标挂钩。您不需要使用Swing或其他GUI类。
在内部,JNativeHook使用JNI来提供这些功能。