JavaFX TabPane:如何设置选定的选项卡
Posted
技术标签:
【中文标题】JavaFX TabPane:如何设置选定的选项卡【英文标题】:JavaFX TabPane: How to set the selected tab 【发布时间】:2011-10-17 15:48:51 【问题描述】:我有一个带有 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);
【问题讨论】:
【参考方案1】: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
如果您尝试选择一个不存在的选项卡,则不会发生任何事情。
【讨论】:
【参考方案2】:为了简化上述方法:
myTabPane.getSelectionModel().select(myTab);
【讨论】:
真的很有帮助。【参考方案3】:要继续 Menai 的回答,请查看如何重新调整打开的选项卡/TabPane 的焦点。
SingleSelectionModel<Tab> selectionModel = TabPane.getSelectionModel();
if(!Tabpane.getTabs().contains(tabName))
TabPane.getTabs().add(tabName);
selectionModel.select(tabPane);
else
selectionModel.select(tabPane);
【讨论】:
【参考方案4】:TabPane tabPane = new TabPane();
tabPane.getSelectionModel().select(); //Select Tab
tabPane.getSelectionModel().select(); //Select tab index
tabPane.getSelectionModel().selectLast();
tabPane.getSelectionModel().selectFirst();
tabPane.getSelectionModel().selectNext();
tabPane.getSelectionModel().selectPrevious();
tabPane.getSelectionModel().clearSelection(); //Select Tab
tabPane.getSelectionModel().clearSelection(); //Select tab index
【讨论】:
【参考方案5】:如果您使用 statique 选项卡,我的意思是您的 TabPane 有 statique 数量的选项卡,您可以通过这种方式选择您的选项卡:
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);
【讨论】:
以上是关于JavaFX TabPane:如何设置选定的选项卡的主要内容,如果未能解决你的问题,请参考以下文章
带有 StackPane 和自定义控件的 Javafx TabPane