1

这可能听起来简单而愚蠢,但是对于我的生活,我找不到一种方法来拥有一个鼠标监听器,它无需在组件上就可以执行 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");
    }
}

它不会在按下鼠标时打印文本,我在这里遗漏了什么吗?

4

1 回答 1

3

Java 鼠标侦听器仅适用于 swing/awt 组件,并且来自同一个运行进程。

如果您想监听来自其他应用程序的鼠标/键盘事件,请使用JNativeHook 库。您可以安装全局键盘挂钩并监听 keypress 或鼠标事件的鼠标挂钩。您不需要使用 Swing 或其他 GUI 类。

JNativeHook 在内部使用 JNI 来提供这些功能。

于 2013-12-18T04:29:28.607 回答