JavaFX TabPane:如何设置选定的选项卡

时间:2011-08-01 17:56:38

标签: java tabs selecteditem javafx-2

我有一个带有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);

4 个答案:

答案 0 :(得分:86)

SelectionModel是正确的做法。您可以使用TabPanesetSelectionModel(...)获取默认值,也可以使用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);