2016-06-08 74 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); 
相关问题