リスト内のオブジェクトの数量を編集してtoStringを変更すると、新しいtoStringで更新するリストを取得するにはどうすればよいですか?JListの更新を強制する
例:JTreeのノードを変更すると、nodeChanged(node)を使用して、リスト項目を変更するとどうしますか?
リスト内のオブジェクトの数量を編集してtoStringを変更すると、新しいtoStringで更新するリストを取得するにはどうすればよいですか?JListの更新を強制する
例:JTreeのノードを変更すると、nodeChanged(node)を使用して、リスト項目を変更するとどうしますか?
AbstractListModel#fireContentsChanged
AbstractListModel
から拡張すると、
前の質問のJTree
と同じ原則です。 AbstractListModel
は、オブジェクトの内部プロパティが変更された時期を知らない。だからあなたが変更を加えるときは、その特定のメソッドを呼び出して、オブジェクトが変更されたことを示す必要があります。リストモデルは、JList
によって受信された正しいイベントを発生させます。このイベントは更新/再描画されます(呼び出したいもの)。
個人的に私は自己完結型のListModel
を作成することを好みます。 ListModel
が変更を聞いて、このメソッドを外部的に呼び出すのではなく、適切なイベント自体を起動することができます。
List.updateUI()はこれを行いますが、これにはいくつかのオーバーヘッドがあります。
はupdateUIを使用していません。これらのメソッドは[Look and Feel]用です(http://docs.oracle.com/ .com/javase/tutorial/uiswing/lookandfeel/index.html) – mKorbel
* "私は他の回答も受け入れます。" –
さて、updateUIが私の望むことをすることは知っていますが、間違っていると聞いています。 – davidahines
唯一のもの(良いことがある)
は編集
はちょうどあなたが、私が示唆したようにモデルを作成する必要がありますので、その特定の方法は、保護されていることに気づいて、あなたは外部からそのメソッドを呼び出すことはできません明らかにupdateUIです。 – davidahines
updateUIは、JListのメソッドですが、モデル側(ビュー側ではなく)で検索していたはずですが、 – Robin