Доступ к текущему контроллеру JavaFX из фильтра событий сцены - PullRequest
0 голосов
/ 21 марта 2019

Я новичок в 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 фильтра событий Iхочу выполнить определенный метод загруженного контроллера (изменить изображения).Я не могу поместить setOnKeyPressed в этом контроллере, так как связанный fxml имеет только нажатые клавиши изображений, не перехваченные.Я прочитал, что я должен был использовать addEventFilter на сцене.Оно работает.Метод handle правильно активирован, но я не знаю, как получить доступ к методу на контроллере, связанном с «blabla.fxml».

Большое спасибо за вашу помощь.

Доминик

...