2016-12-27 6 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() 

をしかし、これは私にそれの属性のすべてを持つノードを返しません。

たとえば、ノードが別のオブジェクトの場合、その属性(ボタン、フィールドなど)にアクセスできません。必要であれば、私はより多くの情報を提供することができます

object.getTabPane().getTabs().get(0).getContent().getMyTextField().getText(); 

:私はこのような何かをしたいと思います。

ありがとうございます!

//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)); 

注:タブは、他のノードを含めることができないことを意味するものではありません!

関連する問題