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:如何设置选定的选项卡的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX TabPane从外部控制器中选择选项卡

带有 StackPane 和自定义控件的 Javafx TabPane

FX TabPane 中的 Swing 内容中断

如何设置 ActionBar 样式,选定选项卡上的选项卡背景

如何向JavaFX选项卡添加多个选项卡关闭事件处理程序?

Ant Design TabPane 最小高度 100%