簡體   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