2017-02-03 1 views
0

Je voudrais savoir s'il est possible de "réutiliser" le contrôleur pour un autre fxml après l'avoir créé. En d'autres termes, puis-je créer un contrôleur pour fxml, le modifier un peu, puis utiliser (une autre instance de) pour un autre fxml sans affecter le premier. Sinon, je suis d'une certaine manière obligé de copier le code à partir du contrôleur, d'appliquer les changements, puis d'utiliser le nouveau.Contrôleurs réutilisables en FXML. Un contrôleur (légèrement modifié) pour plusieurs fichiers fxml

Répondre

0

Je ne vois pas beaucoup de cas d'utilisation pour cela, car vous aurez évidemment différents contrôles dans différents fichiers FXML, donc on ne sait pas comment gérer l'injection. Si vous avez un cas d'utilisation (par exemple, les différents fichiers FXML ont des dispositions différentes pour la même interface utilisateur de base), cela est possible:

Supprimez l'attribut fx:controller des fichiers FXML et réglez le contrôleur manuellement en utilisant le modèle suivant :

FXMLLoader loader = new FXMLLoader(getClass().getResource("/path/to/file.fxml")); 
MyConfigurableController controller = new MyConfigurableController(aParam, anotherParam); 
loader.setController(controller); 
Parent root = loader.load(); 
+0

Merci pour la réponse. J'ai la situation suivante. J'ai deux écrans qui changent dynamiquement. Dans l'écran A, j'ai une barre de support et un contrôleur pour cela. Dans l'écran B je voudrais créer une nouvelle barre de média (la même mais avec quelques boutons de plus par exemple) et utiliser le même contrôleur mais avec la fonctionnalité ajoutée. Bien sûr, je peux copier le contrôleur dans un nouveau pour la deuxième barre de médias et l'utiliser pour mon but mais je cherchais une solution plus élégante comme l'ajout d'un second contrôleur à la nouvelle barre de support qui peut gérer les nouvelles choses . Est-ce que c'est en quelque sorte possible? – TheNephalem

+0

@TheNephalem Pour ce scénario, pourquoi n'utiliserais-tu pas simplement l'héritage? –

+0

Je suis tellement fatigué que je peux à peine y penser. Merci beaucoup vous m'avez sauvé beaucoup de temps! – TheNephalem