2016-06-29 2 views
0

나는 나무 같이 있습니다javafx에서 자식 노드에 액세스하는 방법은 무엇입니까?

enter image description here

10 열이 GridPane이 당신이 볼 수 있듯이. 각각은 AnchorPane에 랩 된 BorderPane을 포함합니다. 각 BorderPane는 2 개의 label와 1 개의 radioButton로 구성됩니다. 당신이 같이하는 방법을 참조하실 수 있습니다 :

enter image description here

을 나는 이러한 요소 코드 측면에서 대한 액세스를 얻을하는 방법을 물어보고 싶은. GridPane에서 getChildren() 메서드를 사용할 수 있지만 GridPane 열에서만 AnchorPanes를 얻을 수 있다는 것을 알고 있습니다. 나는 깊이 들어가기를 원하며, 예를 들어 텍스트를 라벨 중 하나에 넣고 싶습니다.

씬 빌더의 id 세트를 추가하고 싶습니다. 왜냐하면 많은 열이있을 것이기 때문에 원하는 루프가 아니기 때문에 루프를 채울 것입니다.

도와 주시겠습니까?

한 가지 더 : 저는 장면 작성기에서보기를 작성합니다.

+0

대신 도움을 청하는 것이 쉽습니다. –

답변

0

생성시 루프 내의 노드에 대해 set a css id 수 있습니다. 나중에 lookup 노드를 설정하여 ID를 설정할 수 있습니다. lookup will also work on a scene은 장면 내의 모든 노드 또는 일치하는 노드 집합을 찾습니다. 물론

HBox parent = new HBox(); 
for (int i = 0; i < N_COLS, i++) { 
    Node childNode = createNode(); 
    childNode.setId("child" + i); 
    parent.getChildren().add(childNode); 
} 
. . . 
Node redheadedStepchild = parent.lookup("#child5"); 

, 당신은 항상 너무 아이에게 표준 객체 접근에 액세스 할 수 있습니다

Node redheadedStepchild = parent.getChildren().get(5); 

을 당신이 당신의 질문에이 같은 구조가 중첩되는 경우에, 당신이 일을 할 수있다

Node redheadedGrandchild = grandparent.getChildren().get(3).getChildren().get(5); 

이러한 검색은 대형 구조에 뒤얽히며 아마도 귀하의 c ode는 더 부서지기 쉽다. 따라서 CSS 기반 조회 또는 tree traversal이 선호되거나 fx:id@FXML을 통한 참조를 직접 주입하는 경우 루프에서 코드의 항목을 생성하므로 조회 방법이 다음과 같이됩니다. 아마도 당신에게 가장 좋을 것입니다.

관련 문제