7

FXCollections.observableArrayList()によって返されるオブジェクトとほぼ同じであるが、いくつかの追加機能を備えたクラスを作成したいと思います。私の最初の考えは次のようなものでした

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

    public functionWhatever()
    {
        // whatever
    }

}

しかし、それは付属している〜30の関数をオーバーライドすることを意味しますObservableList(これは私が何か間違ったことをしているというヒントのようです)。

FXCollections.observableArrayList()タイプのオブジェクトを返しますが、com.sun.javafx.collections.ObservableListWrapper拡張すると、次ObservableListWrapperのようなコンストラクターを作成する必要があります

MyObservableList( List arg0 )

また

MyObservableList( List arg0, Callback arg1 )

FXCollections.observableArrayList()引数を受け入れないので心配です。

FXCollections返されるオブジェクトをどのように作成するかはわかりませんが、返されるオブジェクト(およびいくつかの追加関数)と同一にObservableListWrapperなりたいです。MyObservableListFXCollections

どうすればよいですか?

4

1 に答える 1

3

SimpleListPropertydocs.oracle.com を拡張します

このクラスは、ObservableListをラップするプロパティの完全な実装を提供します。


このctorに注意してください:

public SimpleListProperty(ObservableList initialValue)

だからあなたはできる:

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

    public functionWhatever()
    {
        // whatever
    } 

}

このように、クラスはArrayListに基づいています。

于 2013-01-14T01:30:37.807 に答える