リスト内のオブジェクトの数量を編集して toString が変更された場合、リストを新しい toString で更新するにはどうすればよいですか?
たとえば、JTree のノードを変更するとき、nodeChanged(node) を使用します。リスト項目を変更するときはどうすればよいですか?
AbstractListModel#fireContentsChanged
から延長する場合AbstractListModel
。
JTree
前回の質問と同じ原理です。は、オブジェクトのAbstractListModel
内部プロパティがいつ変更されるかを知りません。したがって、変更を加えるときは、オブジェクトが変更されたことを示す特定のメソッドを呼び出す必要があります。リストモデルは、によって受信された正しいイベントを発生させJList
、更新/再描画します (呼び出したいものは何でも)。
個人的にListModel
は、自己完結型の s を作成することを好みます。たとえば、使用するオブジェクトが変更時にイベントを発生させる場合、これらの変更ListModel
をリッスンし、このメソッドを外部から呼び出す代わりに、適切なイベント自体を発生させることができます。
編集
その特定のメソッドが保護されていることに気付いたので、私が提案したようにモデルを作成する必要があり、そのメソッドを外部から呼び出すことはできません (これは良いことです)。
List.updateUI() がそれを行いますが、これにはオーバーヘッドがあると言われています。