2016-08-22 1 views
0

J'ai écrit le code suivant, dans lequel j'ai affecté le nœud maître en tant que nouveau treeView.JavaFX comment affecter du contenu à un contrôleur d'interface utilisateur de nœud enfant

MasterDetailPane pane = new MasterDetailPane(); 
pane.setMasterNode(new TreeView()); 
pane.setDetailNode(new PropertySheet()); 
pane.setDetailSide(Side.BOTTOM); 
pane.setShowDetailNode(true); 

Maintenant, je veux remplir et manipuler ce TreeView par programmation. Je pense que je dois faire un pane.getMasterNode() ..., mais certains comment je devrais être en mesure d'accéder à ce contrôleur et dire quelque chose comme,

pane.getMasterNode().setRoot(rootNode); 

Mais je ne peux pas comprendre comment obtenir un Maintenez le contrôleur enfoncé et obtenez-le comme bon type d'objet afin d'assigner le rootNode. Comment faire pour accéder à ce contrôleur enterré pour assigner un rootNode?

+0

Vous créez le 'TreeNode' vous-même, alors pourquoi ne pas l'affecter à un champ avant de le définir comme' MasterNode' afin de pouvoir accéder plus facilement à lateron? De cette façon, vous n'avez pas besoin de la distribution, etc. Appelant aussi 'MasterNode' /' TreeNode' un 'Controller' pourrait être plutôt déroutant, puisque c'est quelque chose de totalement différent dans JavaFX. – n247s

Répondre

0

D'accord, donc je l'ai compris. Je commence juste à javafx, alors fais attention à moi. Il suffisait de convertir le noeud en vue arborescente pour récupérer la classe d'interface utilisateur et la rendre accessible.

TreeView myTree = (TreeView) pane.getMasterNode(); 
myTree.setRoot(rootNode); 

Et cela fonctionne comme prévu.