Допустим, у меня есть контроллер Ctr и соответствующий файл fxml file.fxml.
Я хочу объявить и создать экземпляр объекта, который я могу показать на экране, который соответствует этому fxml и контроллеру.
У меня есть класс A который содержит этот объект.
Проблема в следующем:
если объявить этот объект как Ctr (контроллер), он больше не будет отображаться, потому что я не могу добавить его как дочерний к другим, таким как stackpane.
И если использовать FXMLLoader возвращаемый класс нагрузки неизвестен, и я не могу сохранить его как объект Ctr.
Как я могу создать экземпляр объекта, который соответствует fxml и контроллеру
Ответы (1)
Вы не можете точно знать возвращаемый класс FXMLLoader
, но поскольку вы выбираете файл fxml
, вы знаете, в каком классе вы должны выполнить controller
:
Stage primaryStage = new Stage();
FXMLLoader fx = new FXMLLoader(Paths.get("../specialView4X.fxml").toUri().toURL());
Scene scene = new Scene(fx.load());
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.centerOnScreen();
SpecialView4XController control = (SpecialView4XController) fx.getController();
Это для запуска нового окна, для повторного использования существующего, возьмите существующий объект и используйте getScene()
на нем
person
azro
schedule
18.02.2018
load
. Это может быть вариантом для вас: docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/ - person fabian   schedule 18.02.2018