1

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

我的问题:如果我在我的选项卡窗格中添加多个新选项卡,所有选项卡都会相互覆盖。

我已经尝试像这样阻止它:初始化所有内容:

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

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

为了设置选择,我尝试了一些事情:

        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());;

我想选择最新的标签。这已经在工作,但旧的没有被取消。如果我用鼠标单击选择选项卡,问题就会消失。

我很感激任何想法。

4

2 回答 2

0

您是否有可能使用不同的 FXMLLoaders?当我使用普通的 FXMLLoader 和自定义的 FXMLLoader 时,我遇到了一个类似的问题。只需尝试在两种情况下都使用相同的。这就是它为我工作的方式。

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

问候

于 2015-07-30T06:43:57.210 回答
0

我有类似的问题,我刚刚删除了该行

 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() 超出范围,所以它会

于 2016-11-06T00:32:22.783 回答