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();
}
为什么我不打印&#34;离开&#34;当按下左箭头?我不明白......这是一个JavaFX应用程序...... 当我在键盘上输入左箭头时,我希望这样,这个原则&#34;离开&#34;
答案 0 :(得分:1)
您将收听者添加到未获得焦点的Node
。将其添加到Scene
代替:
scene.setOnKeyPressed(eventHandler);
或将Circle
的{{3}}设置为true
:
circle.setFocusTraversable(true);