我有一个带有JavaFX 2的Java桌面应用程序,在我的FX中我有一个TabPane。我想设置默认选项卡。换句话说,我想将选项卡设置为选中。我发现有多种方法可以找出哪个标签被选中,我发现setSelectionModel()
但我无法弄清楚如何使用它。
TabPane tabPane = new TabPane();
Tab tab0 = new Tab("blue");
tab.setContent(new Rectangle(200,200, Color.BLUE));
Tab tab1 = new Tab("green");
tab.setContent(new Rectangle(200,200, Color.GREEN));
tabPane.getTabs().addAll(tab0, tab1);
答案 0 :(得分:86)
SelectionModel
是正确的做法。您可以使用TabPane
从setSelectionModel(...)
获取默认值,也可以使用SingleSelectionModel<Tab> selectionModel = tabPane.getSelectionModel();
指定自己的实现。默认模型应该足够开始。
selectionModel.select(tab); //select by object
selectionModel.select(1); //select by index starting with 0
selectionModel.clearSelection(); //clear your selection
将它存储在某个局部变量中后,您可以选择不同的选项。
{{1}}
如果您尝试选择不存在的标签,则不会发生任何事情。
答案 1 :(得分:20)
简化上述方法:
myTabPane.getSelectionModel().select(myTab);
答案 2 :(得分:1)
继续使用Menai的回答继承人如何重新聚焦打开的标签/ TabPane。
SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
if(!Tabpane.getTabs().contains(tabName)) {
TabPane.getTabs().add(tabName);
selectionModel.select(tabPane);
} else {
selectionModel.select(tabPane);
}
答案 3 :(得分:-1)
如果您使用 statique 标签,我的意思是您的TabPane有大量的标签页,您可以通过这种方式选择标签:
SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
selectionModel.select(tabName);
如果您使用 dynamique 标签,我的意思是您的TabPane有动态数量的标签(添加和删除标签),您可以通过这种方式选择标签:
if (!TabPane.getTabs().contains(tabName)) {
TabPane.getTabs().add(tabName);
}
SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
selectionModel.select(tabPane);