2016-08-22 85 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); 

而且它按預期工作。

相關問題