2013-07-23 6 views
0

Voici ce que j'essaie d'accomplir.JAVAFX - FXML - Commandes FXML chargées par l'accès depuis le contrôleur parent

/Package A/ 
/Package A/ApplicationController.java 
/Package A/Application.fxml 

Dans mon fichier Application.fxml j'ai un bouton, et lorsque ce bouton est cliqué, il charge le fichier « MyGrid.fxml » suivant.

/Package B/ 
/Package B/MyGrid.fxml (has a label #mygridlabelid 

Le code J'utilise est:

ContentPane.getChildren().add((Node)FXMLLoader.load(getClass().getResource("/Package B/MyGrid.fxml"))); 

Mais le problème est .. même si je suis le chargement du fichier MyGrid.fxml du ApplicationController, je ne peux pas accéder #mygridlabelid à partir du fichier ApplicationController . Je définissais étiquette @FXML mygridlabelid dans le fichier ApplicationController.java, mais il ne va pas instancié :(

Comment puis-je faire? Tous les trucs ou hacks autour d'elle?

Répondre

2

J'ai réussi à résoudre le problème par en procédant comme suit ... et assurez-vous que le fichier .fxml n'a pas de jeu de contrôleurs fx: ou bien vous rencontrerez la valeur du contrôleur déjà spécifiée.

FXMLLoader loader = new FXMLLoader(getClass().getResource("/your.fxml")); 
    loader.setController(this); 
    try { 
     ContentPane.getChildren().add((Node)loader.load()); 
    } catch (IOException e){ 
     System.out.println(e.getMessage()); 
    } 
Questions connexes