【问题标题】:JavaFX TabPane: How to set the selected tabJavaFX TabPane:如何设置选定的选项卡
【发布时间】: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);

【问题讨论】:

    标签: java tabs selecteditem javafx-2


    【解决方案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);
          

          【讨论】:

            猜你喜欢
            • 2020-03-03
            • 2018-04-03
            • 1970-01-01
            • 2014-07-16
            • 2017-01-28
            • 2013-01-02
            • 2016-09-14
            • 1970-01-01
            相关资源
            最近更新 更多