2014-06-17 2 views
5

내 JFX 응용 프로그램을 화살표 키 누름을 시뮬레이트하고 싶습니다 (TextField에 등록 된 경우). 그러나 문자열이나 바이트 이외의 다른 방법을 보내는 방법을 알 수 없습니다. .Java FX의 화살표 키 누름을 프로그래밍 방식으로 시뮬레이션하는 방법

static EventHandler<KeyEvent> KEY() { 
    E = new EventHandler<KeyEvent>() { 
     @Override 
     public void handle(KeyEvent ke) { 
      if (ke.getCode().equals(KeyCode.UP)) { 
       try { 
        //someObject.SimulateKeyPress(KeyCode.UP); 

        //OR 

        //coolObject.SendKey((char)KEY_UPKEY)); 
       } catch (Exception ex) { 
        //Teleport goats 
       } 
      } 
     } 
    }; 

    return E; 
} 

답변

8

당신은 형 로봇을 인스턴스화 할 수 없습니다 클래스 Robot

try { 
    Robot r = new Robot(); 
    //there are other methods such as positioning mouse and mouseclicks etc. 
    r.keyPress(java.awt.event.KeyEvent.VK_UP); 
    r.keyRelease(java.awt.event.KeyEvent.VK_UP); 
} catch (AWTException e) { 
    //Teleport penguins 
} 
+1

환호, 완벽하게 작동합니다. –

+0

이것은 javafx 또는 jvm 프로세스와 관련이없는 현재 포커스가있는 응용 프로그램의 키 누르기를 시뮬레이션합니다. –

0

을 사용

나는 이런 식으로 뭔가를 상상하고있다. 오히려해야합니다 :

Robot robot = com.sun.glass.ui.Application.GetApplication().createRobot(); 
+1

Java 9 이후부터, com.sun API는 JDK를 사용하는 어플리케이션 프로그래머에게는 보이지 않는 일이 있습니다. – jewelsea

+0

오, 고마워요! 대체 무엇입니까? –

+1

어디서 얻었는지 모르겠지만'Robot'을 절대적으로 인스턴스화 할 수 있습니다 : https://docs.oracle.com/javase/8/docs/api/java/awt/Robot.html#Robot-- –

관련 문제