繁体   English   中英

JavaFX-如何同步CustomTab(扩展Tab)和TabPane

[英]JavaFX - How to synchronize CustomTab (extending Tab) and TabPane

我正在开发一个IDE。 我通过扩展默认的JavaFX Tab创建了CustomTab.java类。 我想添加一个颜色过渡动画,但是遇到了一个问题。 TabPane名为getTabs()的方法是最终的,该方法返回ObservableList<Tab> 这意味着我无法覆盖它以返回ObservableList<CustomTab> 似乎这样的构造:

for (Tab tab : tabPane.getTabs()) {
    ((CustomTab) tab).stopFlash();
}

Controller.java中使用的是断颈的和错误的。 什么是正确的方法?

我认为我的回复迟到了,但我认为有办法。 使用功能

tab.setUserData(Object c);

在该对象中,您可以存储继续进行所需的所有信息。

因此,例如,创建一个包含所有所需对象的对象。 例如,您可以保存对webView的引用。

另外,如果您需要其他信息,可以使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM