这可能听起来简单而愚蠢,但对于我来说,我无法找到一种方法来让鼠标监听器执行 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 library.You can install a global keyboard hook and listen for keypress or a mousehook for mouse events.You don't need to use Swing or other GUI classes.
JNativeHook 在内部使用 JNI 来提供这些功能。
关于Java 鼠标监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649536/