2013-06-26 4 views
0

Je suis curieux de savoir s'il est possible d'appeler des variables @FXML non seulement dans la classe Controller, mais aussi dans d'autres classes. Eh bien, en fait, je fais face à SVGPath nœuds et en essayant d'implémenter différents graphiques de type. Cependant, je ne veux pas écrire le code entier dans seulement classe de contrôleur. J'apprécierai si vous pouvez aider et donner également des réponses claires. Donc merci quand même :)Existe-t-il un moyen d'accéder aux variables FXML dans des classes autres que Controller Class?

EDIT: permettez-moi de présenter un exemple simple sur mon problème.

Section de code de classe de contrôleur;

public class RiskControllerClass implements Initializable { 

    @FXML private SVGPath NA_1; // Alaska 
    @FXML private SVGPath NA_2; // NorthWest_Ter 
    . 
    . 
} 

Territory classe qui fait référence à un sommet dans un graphe

public class Territory { 

    public Territory(SVGPath nodeSVG, int territoryID, int playerID){ 

     this.playerID = playerID; 
     this.territoryID = territoryID; 
     this.nodeSVG = nodeSVG; 
     this.label = nodeSVG.getId(); 
     this.adjacencyList = new LinkedList<>(); 
     this.edgeSet = new LinkedList<>(); 
    } 
. 
. 
} 

donc je veux mettre en œuvre mon graphique une autre classe que la classe contrôleur quelque chose comme GameBoard

public class GameBoard { 

    // Want to call @FXML instance variables here 

} 

Répondre

3

Il n'y a d'autres manière que d'accéder à votre contrôleur et d'appeler des méthodes à partir de celui-ci. Il n'y a pas de manière magique qu'une annotation @FXML rende les variables privées disponibles globalement. @FXML est utilisé uniquement pour marquer certains champs pour le FXMLLoader afin qu'il puisse y accéder via la réflexion dans le processus d'instanciation de votre FXML - rien d'autre.

Refere à cette question sur la façon d'accéder au contrôleur:

Accessing FXML controller class

JavaFX: How to get stage from controller during initialization?

+0

merci pour le post clair :) – quartaela

Questions connexes