3

listModel の変更をリッスンする必要があるインターフェイスを理解するのに問題があります。ListDataListenerだと思ったのですが、その中のメソッドがわかりません。そこには3つの方法があり、これは私が欲しいもののようですが、説明を理解できません:

contentsChanged(ListDataEvent e) 
      Sent when the contents of the list has changed in a way that's too complex to characterize with the previous methods.

「複雑すぎる」とはどういう意味ですか? そして、「以前の方法で特徴付ける」ことによって?さて、全体はどういう意味ですか?これは私が望むインターフェースですか?

4

2 に答える 2

3

ListModelListDataListenerイベントをそのリスナーにディスパッチします。可能であれば、リスト モデルが詳細メソッドintervalAddedintervalRemovedメソッドを呼び出す方が効率的です。リスト モデルのリスナー (この場合は a JList) は、これらの詳細な変更を使用して、ビジュアル コンポーネントに最小限の変更をintervalAdded加えることができます (つまり、リスト全体を再描画する代わりに新しい行を追加するだけです)。

ただし、一部の変更は複雑すぎて、単に追加して削除しただけでは説明できない場合があります。この場合、リスト モデルには を呼び出すオプションがありますcontentsChanged。ほとんどの場合、リスト モデルからリスト全体を再フェッチしますJListcontentsChanged

于 2011-10-28T00:22:20.987 に答える
2

はい、それが正しい聞き手です。

このステートメントは、このメソッドがより一般的なものであり、リストの内容に対するすべての可能な変更をカバーすることを意味します。他のもの (intervalAddedおよびintervalRemoved) は、これらの特定のイベントが発生したときに使用する必要があります。

私の実践では、常に最も一般的なものを使用します(テーブルリスナーを使用する場合でも)..最適化に使用することになっていたと思います(特に大きなリストの場合)。

このリスナーのチュートリアルは、こちらにあります

于 2011-10-28T00:02:55.060 に答える