2016-08-22 83 views
0

我已经编写了以下代码,其中我将MasterNode分配为新的TreeView。JavaFX如何将内容分配给子节点UI控制器

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

现在我想以编程方式填充和操作该TreeView。我想我需要做一个pane.getMasterNode()...,但一些如何,我应该能够访问控制器和这样说,

pane.getMasterNode().setRoot(rootNode); 

但我无法弄清楚如何获得持有控制器,并将其转换为正确类型的对象以分配rootNode。如何访问该埋入控制器以分配rootNode?

+0

您正在自己创建'TreeNode',为什么不在将它设置为'MasterNode'之前将其分配给一个字段,以便您稍后可以更容易地访问它?这种方式你不需要演员等。同时调用'MasterNode' /'TreeNode'' Controller'可能会相当混乱,因为它在JavaFX中完全不同。 – n247s

回答

0

好的,所以我弄明白了。我刚刚开始使用javafx,请耐心等待。只需将节点转换为树形视图即可获取UI类并使其可访问。

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

而且它按预期工作。

相关问题