2012-03-23 2 views
1

내가 제목 didnt 한을 알고있는 배경에서 실행중인 동안 게임 개방에 봉착하더라도 제대로 작동 내 응용 프로그램을 유지하기 위해 얼마나 많은 말을하지만, 나는 여기 명확한 설명과 함께 이동 :자바 : 그것은

내가 가진 JFrame을 확장하는 넷빈에 도구/앱을 만들었습니다. 그것은 버튼이 있고 버튼을 누르면 keyListener를 추가했습니다. VK_DOWN 버튼을 누르면 4 번 누른 다음 enter를 누릅니다. 이것은 아주 잘 작동하지만, 게임에서 이것을 사용하고 싶습니다. 그러나 내가 앱을 실행하고있을 때, 다른 것을 클릭하면 우선 순위 (여기에 맞는 단어가 있길 바란다.)가 더 이상 필요 없다. 앱을 클릭하고 다시 최우선 순위로 지정하지 않으면 더 이상 작동하지 않는다. 여기

버튼에 대한 코드입니다 :

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
    jButton1.addKeyListener(new KeyAdapter() { 
    public void keyReleased(KeyEvent e) { 

    } 
    public void keyTyped(KeyEvent e) { 
    // TODO: Do something for the keyTyped event 
    } 
    public void keyPressed(KeyEvent e) { 
    // TODO: Do something for the keyPressed event 
     if (e.getKeyCode() == e.VK_L){ 
      System.out.println("Works"); 
     } 
     if (e.getKeyCode() == e.VK_DOWN){ 
      System.out.println("Down Arrow Pressed!"); 
      e.setKeyCode(e.VK_DOWN); 
      e.setKeyCode(e.VK_DOWN); 
      e.setKeyCode(e.VK_DOWN); 
      e.setKeyCode(e.VK_DOWN); 
      e.setKeyCode(e.VK_ENTER); 

     } 
    } 
    }); 
} 

나는 게임에서 VK_DOWN 화살표 키를 눌러 앱 프레스는 4 번하게하고 자체적으로 입력 누르세요. 이것은 내가 다른 모든 것들 위에 앱을 실행할 때만 작동합니다. 하지만 게임을 실행하는 경우, 게임이 더 높은 우선 순위를 가지고 그래서 응용 프로그램이 작동하지 않습니다 ..

도와주세요.

+1

찾고있는 단어가 '포커스'인 경우 하나의 창에만 '포커스'가 있고 OS의 키 이벤트와 같은 것이 전송됩니다. Java와 함께 사용하는 경우는 아니지만 운영 체제에서 이벤트를 수신 대기하지 않고 핵심 상태를 직접 프로그램 할 수는 있습니다. 나는 JRE가 당신의 재미를 여기에서 망칠 수도 있다고 의심한다. – thecoshman

+0

당신은 'down arrow'키 이벤트가 게임이나 GUI에서 작동하기를 원한다? –

+0

죄송합니다. 자바를 처음 사용했습니다. GUI가 정확히 무엇을 의미합니까? 게임에서 내 "아래쪽 화살표"키 이벤트가 도구에 의해 감지되고 도구가 키보드로 응답하여 수행 할 것을 지시하면이 경우 setKeyCode에 '아래쪽 화살표'가 4 번 표시됩니다 + setKeyCode 'Enter'를 1 번 누릅니다. –

답변

0

일부 원시 코드를 사용하지 않는 한 Java로 수행하려는 작업을 수행 할 수 없습니다.

+0

WindowsEvent를 사용하여 활성화 된 윈도우를 확인하려고합니다. 그런 다음 활성화 된 모든 창에서이 코드를 사용하십시오. 코드는 괜찮지 만 어떤 이유로 든 작동하지 않습니다. 이것이 올바른 방법일까요? –

+0

@MirwaisMaarij Java는 전역 키 바인딩 (또는 원하는대로)을 지원하지 않습니다. 다른 언어를 사용해야합니다. – Stripies

3

체크 아웃이 API를 :

"JNativeHook 자바 글로벌 키보드와 마우스 후킹을 제공하는 라이브러리입니다 주된 목적은 Java 응용 프로그램에 키보드와 마우스 이벤트를 제공하기위한 휴대용하고 신뢰할 수있는 방법을 제공하는 것입니다. 그렇지 않으면 백그라운드에서 실행되지만 단축키 또는 마우스 이벤트를 통해 사용자 상호 작용이 필요할 수있는 응용 프로그램에 유용합니다. "

http://code.google.com/p/jnativehook/

+0

이것은 문제의 완벽한 해결책처럼 들립니다. – thecoshman

+0

나는 이것의 근원을 다운로드했다. 그래서 내가이 nativehook를 실행하고있을 때 내가 원하는 것처럼이 4 번을 시뮬레이션합니다 키 '아래쪽 화살표'를 누를 때마다 나는 다음이로 위에서 내 코드를 가져오고 수 있다고 말하고있다? –

+0

WindowsEvent를 사용하여 활성화 된 윈도우를 확인하려고합니다. 그런 다음 활성화 된 모든 창에서이 코드를 사용하십시오. 코드는 괜찮지 만 어떤 이유로 든 작동하지 않습니다. 이것이 올바른 방법일까요? –

0

어, 그것은 작동하지만 키 이벤트를 생성하는 AWT 패키지에서 로봇 수업을 다할 것입니다 있는지 확실하지. 그것은 당신의 코드보다 잘 작동합니다.