2013-12-18 5 views
1

이것은 아마도 간단하고 어리석은 것처럼 들리 겠지만 저의 삶에서 구성 요소에 있지 않아도 mousePressed를 수행하는 마우스 수신기를 가질 수있는 방법을 찾을 수 없습니다. void mousePressed() {}는 내가 원하는 방식으로 작동하지 않는 것 같습니다.Java Mouse Listener

본질적으로 그래픽없이 작업하는 것을 목표로하는 Java 프로그램을 만들고 백그라운드에서 작업을 수행합니다. 예를 들어 크롬을 클릭하면 여전히 프로그램에 영향을 미칩니다.

내가 시도한 것은 이것이었는데, 나는 그것이 끔찍하게 틀렸다는 것을 깨닫는다. 그러나 내가 그것을해야한다고 생각하는 방식 작동하지 않는 것, 내가 JNativeHook 라이브러리를 시도 reccomended으로

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

: 그것은 누르면 마우스의 텍스트를 인쇄하지 않습니다

public class mousepresstest implements NativeMouseInputListener{ 

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

을, I 오전 여기 뭔가가 없어?

+0

코드를 게시 할 수 있습니까? 당신이 무엇을 요구하고 있는지 추측하기는 매우 어렵습니다. –

+1

MouseListener는 컴퍼넌트에 의해 방아쇠되는 이벤트를 대기합니다 *. IE : 마우스 메시지 자체를 해석하지 않습니다. 이벤트를 시작하려면 Java 구성 요소가 필요합니다. 바탕 화면의 루트 창을 나타내는 구성 요소를 얻을 수 있다면 거기에서 청취 할 수 있습니다. 그렇지 않으면 행운이 아닐 수도 있습니다. – cHao

+0

당신이 시도한 것을 우리에게 보여주지 않으면 어떤 도움도 얻지 못할 것입니다. – iWumbo

답변

3

Java 마우스 리스너는 스윙/awt 구성 요소에만 해당되며 실행중인 프로세스에서도 마찬가지입니다. 당신이 마우스를 청취하려면

은/다른 응용 프로그램에서 키보드 이벤트는 사용 JNativeHook library.You는 글로벌 키보드 후크를 설치하고 키 입력하거나 필요하지 않은 마우스 events.You에 대한 mousehook 수신 할 수 있습니다 Swing 또는 다른 GUI 클래스를 사용하십시오.

내부적으로 JNativeHook은 JNI를 사용하여 이러한 기능을 제공합니다.