实现ObservableList,扩展ObservableListWrapper

时间:2012-12-19 00:58:20

标签: java javafx-2

我想创建一个几乎与FXCollections.observableArrayList()返回的对象相同但具有一些额外功能的类。我的第一个想法是

public class MyObservableList implements ObservableList
{
    private ObservableList list = FXCollections.observableArrayList();

    public functionWhatever()
    {
        // whatever
    }

}

但这意味着要覆盖ObservableList附带的~30个函数(这似乎暗示我做错了)。

FXCollections.observableArrayList()返回com.sun.javafx.collections.ObservableListWrapper类型的对象,但是当我扩展ObservableListWrapper时,我需要创建一个像

这样的构造函数
MyObservableList( List arg0 )

MyObservableList( List arg0, Callback arg1 )

让我担心,因为FXCollections.observableArrayList()不接受任何论据。

我不知道FXCollections如何创建它返回的ObservableListWrapper对象,但我希望MyObservableListFXCollections返回的对象相同(加上一对额外功能)。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

扩展 SimpleListProperty docs.oracle.com

此类提供包装ObservableList的Property的完整实现。


请注意这个ctor:

public SimpleListProperty(ObservableList initialValue)

所以你可以:

public class MyObservableList extends SimpleListProperty
{
    //constructor
    MyObservableList(){
        super(FXCollections.observableArrayList());
    }

    public functionWhatever()
    {
        // whatever
    } 

}

这样你的类将基于一个ArrayList。