JavaFX Tabpane同时选择2个Tabs

JavaFX Tabpane selects 2 Tabs at the same time

我刚开始使用 JavaFX。 在我的小项目中,我有两种观点。第一个充满了一个标签面板,而第二个包含一个按钮,用于将新标签添加到标签面板。这意味着我需要在第一个和第二个视图之间切换以添加新选项卡。 标签面板有一个无法关闭的标准标签。

我的问题:如果我在我的标签面板中添加了多个新标签,所有标签都会相互覆盖。

我已经尝试过这样防止它: 初始化一切:

        private ArrayList<Tab> allTabs = new ArrayList<Tab>();
        Tab tab = new Tab();

        allTabs.add(tab);
        TabPane tp = new TabPane();
        tp.getTabs().add(tab);

为了设置 selection,我尝试了一些方法:

        tp.getSelectionModel().clearSelection();
        tp.getSelectionModel().select(allTabs.size());
        _________________________________________________________________
        tp.getSelectionModel().clearSelection();
        tp.getSelectionModel().select(tp.getTabs().size);
        _________________________________________________________________
        tp.getSelectionModel().selectLast();
        _________________________________________________________________
        tp.getSelectionModel().selectNext();
        _________________________________________________________________
        tp.getSelectionModel().clearAndSelect(tp.getTabs().size());;

我想要 select 最新的标签页。这已经在工作了,但是旧的没有被删除selected。如果我 select 使用鼠标单击选项卡,问题就会消失。

非常感谢您的任何想法。

您是否可能使用了不同的 FXMLLoader? 我在使用普通 FXMLLoader 和自定义 FXMLLoader 时遇到了类似的问题。在这两种情况下都尝试使用相同的方法。这就是它对我有用的方式。

如果它不能解决您的问题,一些图片和更多的代码片段将有助于解决您的问题。

问候

我遇到了类似的问题,我只是删除了行

 tabpane.getSelectionModel().clearSelection();

不知道为什么会这样。 只保留 :

 tb.getSelectionModel().select(index or tab);

tb.getSelectionModel().clearAndSelect(index or tab);

PS : tp.getSelectionModel().clearAndSelect(tp.getTabs().size()); 这个,什么都不做,tp.getTabs().size() 超出范围,所以它会