2013-12-18 158 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來提供這些功能。