2015-06-21 24 views
1

我正在開發一個IDE。我通過擴展默認的JavaFX Tab創建了一個CustomTab.java類。我想添加一個顏色轉換動畫,但我遇到了一個問題。 TabPane中的方法名爲getTabs(),它返回ObservableList<Tab>,是最終的。這意味着我不能覆蓋它返回ObservableList<CustomTab>。看起來像這樣的結構:JavaFX - 如何同步CustomTab(擴展Tab)和TabPane

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

Controller.java中使用是頸斷裂和錯誤。 什麼是正確的方法來做到這一點?

+0

謝謝你編輯發佈。正如你可以看到我的英語不好,抱歉。 –

回答

0

我認爲我的回覆很晚,但我認爲有一種方法可以這樣做。 使用功能

tab.setUserData(Object c); 

該對象可以存儲你需要進行的所有信息。

例如,創建一個包含所有需要的對象的對象。 例如你可以保存對你的webView的引用。

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

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

Here a link to the documentation I found

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