0

私は を持っておりObservableList<Person>、 にPersonfirstNameとプロパティがあり (適切な JavaFX の方法で)、人々の名前を表示し、リストとリスト内の個々のオブジェクトのプロパティの両方の変更を反映するlastNameを作成したいと考えています。これはどのように行うのが最善ですか?2 つの問題があります。ListViewPerson

  1. ListView変更を更新できるように、2 つの名前のプロパティを監視する必要があります。これを行う 1 つの方法は、この回答で説明されています (この回答も参照してください)。ただし、この解決策では、「エクストラクタ」を のコンストラクタに渡す必要がありObservableList、私のリストは (より大きなデータ モデルの一部として) 既に存在します。既存のものをラップしてエクストラクタを追加する方法があると思う人もいるでしょうがObservableList、API には表示されません。(まあ、このメソッドListはありますが、ラップされているリストを ではなく単に として扱うObservableListため、元のリストへの更新は報告されません。の「同期された」ラッパーを作成するこのメソッドもありますObservableList、ただし、extractor パラメーターは含まれていません。) おそらく、このラッピングを自分で行うメソッドを実装する必要がありますか?

  2. Personのアイテムをレンダリングする必要がありますListView。カスタム クラスを使用してこれを行う方法は知っていますListCellが、文字列のみを表示しているので、もっと簡単な方法があることを願っています。に依存するPerson.toStringことは正しいことではありませPersonん. a (または同等のもの)を渡してアイテムを文字列に変換する方法はありますか?PersonStringListView<Person>Callback<Person,String>

つまり、1 で独自のラッパーを作成し、2 でカスタム セル ファクトリを使用します。 d think は比較的一般的な状況です。私が見逃している簡単な方法はありますか?

4

1 に答える 1