[英]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.