访问 TabContent 的选项卡及其内容 JavaFX
Access TabContent's tab and it's content JavaFX
我有一个关于 TabContent 的问题。
所以我像这样动态创建选项卡:
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()
但这并不 return 我是具有所有属性的节点。
例如,如果节点是另一个对象,我无法访问它的属性(按钮、字段等)。我想做这样的事情:
object.getTabPane().getTabs().get(0).getContent().getMyTextField().getText();
如果需要,我可以提供更多信息。
提前致谢!
选项卡的逻辑是包含整个布局,在此布局内您可以获得所需的节点,但对于 TextField
的示例:
//Here return the TextField
TextField tf = (TextField) tab.getContent();
就我个人而言,我会将我的 Tabs
存储在 List<Tab>
中,并将布局 (Pane
) 作为我的另一个 Nodes
的内容。以我的拙见,我认为这样更容易!
//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));
注意:这并不意味着选项卡不能包含其他节点!
我有一个关于 TabContent 的问题。 所以我像这样动态创建选项卡:
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()
但这并不 return 我是具有所有属性的节点。
例如,如果节点是另一个对象,我无法访问它的属性(按钮、字段等)。我想做这样的事情:
object.getTabPane().getTabs().get(0).getContent().getMyTextField().getText();
如果需要,我可以提供更多信息。
提前致谢!
选项卡的逻辑是包含整个布局,在此布局内您可以获得所需的节点,但对于 TextField
的示例:
//Here return the TextField
TextField tf = (TextField) tab.getContent();
就我个人而言,我会将我的 Tabs
存储在 List<Tab>
中,并将布局 (Pane
) 作为我的另一个 Nodes
的内容。以我的拙见,我认为这样更容易!
//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));
注意:这并不意味着选项卡不能包含其他节点!