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