2016-06-08 49 views
0
public void start(Stage stage) throws Exception { 

     StackPane root = new StackPane(); 

     Scene scene = new Scene(root, 400, 400); 

     EventHandler eventHandler = new EventHandler<KeyEvent>() { 
      @Override 
      public void handle(KeyEvent event) { 
       System.out.println("handle"); 
       if(event.getCode().equals(KeyCode.LEFT)) { 
        System.out.println("left"); 
       } 
      } 


     }; 

     Circle circle = new Circle(200,200,100); 
     circle.setFill(Color.AQUAMARINE); 
     circle.setOnKeyPressed(eventHandler); 

     root.getChildren().add(circle); 


     stage.setTitle("JavaFX GUI"); 
     stage.setScene(scene); 
     stage.show(); 
    } 

爲什麼我按下左箭頭時不能打印「左」?我不明白...這是一個JavaFX應用程序... 我想,當我鍵入我的鍵盤上的左箭頭,這個prinln「離開」爲什麼當按下左箭頭時,我不能打印「左」?

+0

是 「處理」 打印出來? – Supahupe

+0

在繼續提出新問題之前,先回答並接受舊問題中的答案! – camickr

回答

1

你添加了監聽器到一個Node沒有收到焦點。將它添加到Scene來代替:

scene.setOnKeyPressed(eventHandler); 

或設置CircletruefocusTraversable property

circle.setFocusTraversable(true); 
相關問題