我是JavaFX的新手,但未完成我需要做的事情: 我以这种方式更改场景,同时定义了一个事件过滤器:
AnchorPane pane = FXMLLoader.load(getClass().getResource("blabla.fxml"));
Scene scene = new Scene(pane);
scene.addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
public void handle(KeyEvent event) {
System.out.println("Filtering event " + event.getEventType() + ", " + event.getCode());
//Here in the handle method I want to call a method of the current controller
}
});
Stage appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
appStage.setScene(scene);
appStage.show();
在事件过滤器的handle方法中,我想执行已加载控制器的特定方法(更改图像)。我无法将setOnKeyPressed放置在此控制器中,因为关联的fxml仅捕获了按键图像,因此无法捕获。我读到我不得不在场景上使用addEventFilter。 有用。 正确触发了handle方法,但我不知道如何访问与“ blabla.fxml”关联的控制器上的方法。
非常感谢您的帮助。
多米尼克