2012-04-17 17 views
0

リスト内のオブジェクトの数量を編集してtoStringを変更すると、新しいtoStringで更新するリストを取得するにはどうすればよいですか?JListの更新を強制する

例:JTreeのノードを変更すると、nodeChanged(node)を使用して、リスト項目を変更するとどうしますか?

+0

唯一のもの(良いことがある)

は編集

はちょうどあなたが、私が示唆したようにモデルを作成する必要がありますので、その特定の方法は、保護されていることに気づいて、あなたは外部からそのメソッドを呼び出すことはできません明らかにupdateUIです。 – davidahines

+0

updateUIは、JListのメソッドですが、モデル側(ビュー側ではなく)で検索していたはずですが、 – Robin

答えて

5

AbstractListModel#fireContentsChangedAbstractListModelから拡張すると、

前の質問のJTreeと同じ原則です。 AbstractListModelは、オブジェクトの内部プロパティが変更された時期を知らない。だからあなたが変更を加えるときは、その特定のメソッドを呼び出して、オブジェクトが変更されたことを示す必要があります。リストモデルは、JListによって受信された正しいイベントを発生させます。このイベントは更新/再描画されます(呼び出したいもの)。

個人的に私は自己完結型のListModelを作成することを好みます。 ListModelが変更を聞いて、このメソッドを外部的に呼び出すのではなく、適切なイベント自体を起動することができます。

+0

AbstractListModel#fireContentsChanged :-)、あなたのバッテリーの充電器を共有することができます:-)、私の好奇心は、 – mKorbel

+1

@mKorbel私は答えを編集しました。今はっきりしていますか? – Robin

+0

ほとんどの時間あなたは非常に良いアイデアを持っています。この場合は、元々、JListのJTreeモデルを共有するように提案したアイデアを持っています。その後、私の質問 – mKorbel

0

List.updateUI()はこれを行いますが、これにはいくつかのオーバーヘッドがあります。

+3

はupdateUIを使用していません。これらのメソッドは[Look and Feel]用です(http://docs.oracle.com/ .com/javase/tutorial/uiswing/lookandfeel/index.html) – mKorbel

+0

* "私は他の回答も受け入れます。" –

+0

さて、updateUIが私の望むことをすることは知っていますが、間違っていると聞いています。 – davidahines

関連する問題