JavaFX-如何同步CustomTab(扩展选项卡)和TabPane

JavaFX-如何同步CustomTab(扩展选项卡)和TabPane,java,javafx,tabs,synchronization,tabpanel,Java,Javafx,Tabs,Synchronization,Tabpanel,我正在开发一个IDE。我通过扩展默认的JavaFXTab创建了一个CustomTab.java类。我想添加颜色转换动画,但遇到了一个问题。TabPane中名为getTabs()的方法是最终方法,它返回observeList。这意味着我不能覆盖它以返回ObservableList。看起来像这样的建筑: for (Tab tab : tabPane.getTabs()) { ((CustomTab) tab).stopFlash(); } 在控制器中使用。java是不正确的。 做这件事的正

我正在开发一个IDE。我通过扩展默认的JavaFX
Tab
创建了一个
CustomTab.java
类。我想添加颜色转换动画,但遇到了一个问题。
TabPane
中名为
getTabs()
的方法是最终方法,它返回
observeList
。这意味着我不能覆盖它以返回
ObservableList
。看起来像这样的建筑:

for (Tab tab : tabPane.getTabs()) {
    ((CustomTab) tab).stopFlash();
}
控制器中使用。java
是不正确的。
做这件事的正确方法是什么?

我认为我的回答晚了,但我认为有一种方法可以做到这一点。 使用函数

tab.setUserData(Object c);
在该对象中,您可以存储继续操作所需的所有信息

例如,创建一个包含所有所需对象的对象。 例如,您可以保留对Web视图的引用

此外,如果您需要不同的信息,您可以使用:

tab.getProperties().put(Object key, Object data);
// receive the value with 
tab.getProperties().get(key); 

也许Javadoc更好,但我找到了这个

下面是我写的一个小例子:

public SQLEditorTab getNewTab(){
    SQLEditorTab tab = new SQLEditorTab("new Tab " + number);
    tab.setId("newTab" + number);
    tab.setOnCloseRequest(this);
    tab.setUserData(tab.tabContent);
    number ++; 
    return tab;
} // just to create the tab 
在我的侦听器中,我通过以下方式接收结果:

    sqlEditorPane.getTabs().forEach((Tab t) -> {
        if(t.getUserData() != null){
            System.out.print(t.getUserData().getClass());
        }
    });

谢谢你编辑这篇文章。正如你所看到的,我的英语很差,对不起。节省了我很多时间。谢谢