JavaFX-как получить контроллер FXML? [дубликат]
этот вопрос уже есть ответ здесь:
- доступ к классу контроллера FXML 4 ответы
у меня есть следующий код:
Parent parent = FXMLLoader.load(Main.class.getResource("JanelaPrincipal.fxml"));
в файле fxml есть ссылка на класс контроллера. Как я могу получить объект контроллера?
FXML-файл:
<AnchorPane id="AnchorPane" fx:id="root"
prefHeight="768.0" prefWidth="1024.0" xmlns:fx="http://javafx.com/fxml/1"
xmlns="http://javafx.com/javafx/2.2"
fx:controller="br.meuspila.javafx.JanelaPrincipalController">
...
1 ответов
создайте экземпляр FXMLLoader и используйте метод загрузки экземпляра, а не метод статической загрузки класса. Затем можно получить экземпляр контроллера из экземпляра загрузчика.
FXMLLoader loader = new FXMLLoader(
getClass().getResource(
"customerDialog.fxml"
)
);
Pane pane = (Pane) loader.load();
CustomerDialogController controller =
loader.<CustomerDialogController>getController();
controller.initData(customer);
подробнее: