2012-07-26 2 views
3

Java를 사용하면 GUI 요소를 사용하지 않고 키 누름, 마우스 단추 누름 및/또는 마우스의 화면 위치와 같은 사용자 동작을 감지 할 수 있습니까?Java를 사용하여 GUI 구성 요소를 사용하지 않고 키 누르기를 감지하는 방법?

그렇다면 어떻게 구현할 수 있습니까?

그렇지 않으면 대체 무엇입니까?


제가 이 문제에 발견하는 StackOverflow의 소스

답이 인 this question이다.

그리고이 문제의 "보이지 않는 GUI"솔루션을 가리키는 유일한 StackOverflow 소스는 필자가 피하고 싶은 것입니다.

+1

참조 : http://stackoverflow.com/questions/9545388/how-can-i-detect-arrow-keys-in-java-console-not-in-gui – pb2q

+0

나는 [ 'EventQueue'] (http://docs.oracle.com/javase/6/docs/api/java/awt/EventQueue.html)를 수동으로 설치하십시오. 'JOptionPane' 구현 방법에 대한 JDK 소스를 살펴보면, 모달 대화 상자가 닫히고 결과가 반환 될 때까지 차단하는 방식을 기억하는 것 같습니다. 대화 상자를 목표로하지 않는 이벤트를 무시하는 새로운'EventQueue'를 작성하는 것입니다. . – millimoose

+0

(즉, 네이티브 윈도우 시스템에 자동으로 연결되어 이벤트를 잡는 지 전혀 알 수 없습니다.) – millimoose

답변

2

JNI 및/또는 JNA를 사용하여 구현할 수 있지만 플랫폼 고유의 원시 코드를 작성해야하기 때문에 실제로 "Java 구현"이라고 할 수는 없습니다.

대체 솔루션 내가 시도한 것은 마우스와 키보드의 모든 이벤트를 듣고 실제 응용 프로그램에 "Robot"이라는 클래스를 사용하여 전 화면 투명한 창이 사용하는 것입니다. 나는이 방법을 시도했다. 한 가지 한계점을 잘 설명합니다. 응용 프로그램의 마우스 오버 이벤트를 지원하는 문제가 있습니다. 마우스가 실제 응용 프로그램 위로 이동하지는 않습니다. 투명 자바 창 위로 이동합니다.

-1

java.awt.event.KeyListener 클래스를 사용하십시오. 키를 누를 때 어떤 키를 원하는지 쓸 수있는 세 가지 방법을 작성해야합니다.

관련 문제