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

예상대로 작동합니다.

관련 문제