2016-12-27 4 views
0

TabContent에 관한 질문이 있습니다. 그래서 나는이 같은 동적 탭을 만들 :TabContent의 탭과 그 내용에 액세스 JavaFX

private Tab addNewTab(final TabPane tabPane, String newTabName, Node newTabContent, boolean isCloseable) { 
    Tab newTab = new Tab(newTabName); 
    newTab.setContent(newTabContent); 
    newTab.setClosable(isCloseable); 

    newTab.setOnClosed(new EventHandler<Event>() { 
     @Override 
     public void handle(Event event) { 
      if (tabPane.getTabs() 
        .size() == 2) { 
       event.consume(); 
      } 
     } 
    }); 

    tabPane.getTabs().add(newTab); 
    return newTab; 

} 

그리고 내 질문이 될 것이다, 나는 newTabContent 노드에 액세스 할 방법에 대해 설명합니다. 나는 이런 식으로 뭔가를 시도 :

object.getTabPane().getTabs().get(0).getContent() 

그러나 그것의 모두와 함께 나에게 노드를 반환하지 않는 속성입니다.

예를 들어 노드가 다른 객체 인 경우 속성 (버튼, 필드 등)에 액세스 할 수 없습니다. 다음과 같이하고 싶습니다.

필자는 필요한 경우 자세한 정보를 제공 할 수 있습니다.

미리 감사드립니다.

//Here return the TextField 
TextField tf = (TextField) tab.getContent(); 

는 개인적으로 내 TabsList<Tab>에 저장 한 것 :

는 탭의 논리는 전체 레이아웃을 포함하고,이 레이아웃 내에서 원하는 노드를 얻을 수 있지만 TextField 당신의 예를 들어
+2

"하지만 노드를 반환하지 않습니다." 나는 그것이 확실하다고 확신한다. 여기에 무슨 뜻이야? –

답변

1

입니다 내 Nodes의 콘텐츠로 레이아웃 (Pane)이 포함되어 있습니다. 나의 겸허 한 의견에서 나는 그것을 그렇게 쉽게 생각한다!

//Create dynamic tabs 
List<Tab> tabs = new ArrayList<>(); 
Pane pane = new Pane(); 
TextField tf = new TextField("Hi"); 
pane.getChildren.add(tf); 
tabs.add(addNewTab(tabPane, "Test", pane, true)); 

참고 : 탭이 다른 노드를 포함 할 수 없습니다 것을 의미하지 않는다!

관련 문제