JavaFX : FXML et injection du contrôleur
Injection avec la méthode setController()
Vous pouvez créer un fichier FXML avec un éditeur de texte ou bien avec Scene Builder et ensuite le charger comme ceci :
Controller controller = new Controller();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view.fxml"));
loader.setController(controller);
Parent root = loader.load();
N'oubliez pas d'enlever l'attribut du fichier FXML :
fx:controller="package.Controller"
Si vous n'enlevez pas cet attribut et que vous appelez la fonction setController() le programme lèvera une exception.
javafx.fxml.LoadException: Controller value already specified.
Injection avec FXML
Si vous optez pour l'injection avec le FXML avec l'attribut fx:controller="package.Controller", vous pouvez obtenir le contrôleur avec la méthode getController().
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view.fxml"));
Parent root = loader.load();
Controller controller = (Controller) fxmlLoader.getController();
Commentaires
Enregistrer un commentaire