2013-12-18 159 views
1

这可能听起来很简单和愚蠢,但对于我的生活,我找不到一个鼠标监听器的方法,它不需要在组件上进行mousePressed。 void mousePressed(){}似乎没有按照我希望的方式工作。Java鼠标监听器

基本上我正在制作一个java程序,其目的是在没有图形的情况下工作,并在后台执行某些操作。所以如果你点击chrome例如它仍然会影响程序。

我正在尝试的是这个,我意识到这是非常不正确的。

class MKeyListener extends KeyAdapter { 
    @Override 
    public void keyPressed(KeyEvent e) { 
     moveMouse.playing = false; 
    } 
} 

由于reccomended我试过JNativeHook库,但它似乎不工作,我认为它应该的方式:

public class mousepresstest implements NativeMouseInputListener{ 

    @Override 
    public void nativeMouseClicked(NativeMouseEvent e) { 
     System.out.println("worked"); 
    } 
} 

它不打印按下鼠标上的文字,我是在这里丢失什么?

+0

你能发表你的代码吗?猜测你在问什么很难。 –

+1

MouseListener侦听由组件*触发的事件*。 IE:它不会自己解释鼠标消息;你需要一个Java组件来触发事件。如果你可以得到一个代表桌面根窗口的组件,那么你可以在那里听。否则,你可能会不走运。 – cHao

+0

如果您未向我们展示您尝试过的内容,您将无法获得任何帮助。 – iWumbo

回答

3

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

如果你想监听鼠标/从其他应用程序的键盘事件使用JNativeHook library.You可以安装全局键盘钩子和监听按键或鼠标events.You不需要一个mousehook使用Swing或其他GUI类。

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