私は を持っておりObservableList<Person>
、 にPerson
はfirstName
とプロパティがあり (適切な JavaFX の方法で)、人々の名前を表示し、リストとリスト内の個々のオブジェクトのプロパティの両方の変更を反映するlastName
を作成したいと考えています。これはどのように行うのが最善ですか?2 つの問題があります。ListView
Person
ListView
変更を更新できるように、2 つの名前のプロパティを監視する必要があります。これを行う 1 つの方法は、この回答で説明されています (この回答も参照してください)。ただし、この解決策では、「エクストラクタ」を のコンストラクタに渡す必要がありObservableList
、私のリストは (より大きなデータ モデルの一部として) 既に存在します。既存のものをラップしてエクストラクタを追加する方法があると思う人もいるでしょうがObservableList
、API には表示されません。(まあ、このメソッドList
はありますが、ラップされているリストを ではなく単に として扱うObservableList
ため、元のリストへの更新は報告されません。の「同期された」ラッパーを作成するこのメソッドもありますObservableList
、ただし、extractor パラメーターは含まれていません。) おそらく、このラッピングを自分で行うメソッドを実装する必要がありますか?Person
のアイテムをレンダリングする必要がありますListView
。カスタム クラスを使用してこれを行う方法は知っていますListCell
が、文字列のみを表示しているので、もっと簡単な方法があることを願っています。に依存するPerson.toString
ことは正しいことではありませPerson
ん. a (または同等のもの)を渡してアイテムを文字列に変換する方法はありますか?Person
String
ListView<Person>
Callback<Person,String>
つまり、1 で独自のラッパーを作成し、2 でカスタム セル ファクトリを使用します。 d think は比較的一般的な状況です。私が見逃している簡単な方法はありますか?