ビューの並べ替えとフィルタリング:GlazedListの並べ替えとフィルタリング+ JTableとGlazedイベントリスト+ JXTable

StackOverflow https://stackoverflow.com/questions/7833179

質問

並べ替えとフィルタリングの機能を備えたユーザービュー(テーブル)を作成したい。EventTableModelのソースとしてEventList(艶出しリスト)を使用しています。GlazedListsにはSortedListといくつかのフィルタリング項目もあるので、それらを使用してビューを作成できます。しかし、JXTableを見つけました。これには、並べ替えとフィルタリングのメソッドがあります。これをどのように機能させたいかです。並べ替えとフィルタリングはUIコンポーネントを提供する必要があり、モデルはデータを保持できます。 ジェネラコディセタグプレ

ただし、GlazedListsは、SortedList(Sortingを使用したEventListのデコレータ)といくつかのフィルタリングメソッドも提供します。 ジェネラコディセタグプレ

そして問題は、どのモデルが優れているかということです。または、両方が間違っている可能性があります。ビューの作成には何を使用しますか?

役に立ちましたか?

解決

GlazedListsは機能するので、投票します。はい、テーブルで使用するTableModelはビューに緊密に結合されていますが、そのテーブルモデルをソースデータから分離します。

GlazedListsの並べ替えおよびフィルタリング機能は、JXTableの機能よりもはるかに柔軟性があります。両方をオンにしないように注意してください。そうしないと、混乱する可能性があります。 JXTableでSortedListを使用するための通常のコードスニペットは次のとおりです。 ジェネラコディセタグプレ

これは何をするのか:

  • JXTableの右上にある列ピッカーガジェットをオンにします
  • JXTableの組み込みの並べ替えをオフにします
  • 代わりにGlazedListsの並べ替え機能をインストールしてください
  • TableFormatから派生したEventTableModelを使用してテーブルを設定します

    2つの EventLists、パイプラインの最後のリストであるdisplayItems、および並べ替えに使用する列を制御するために使用されるsortedListを渡すことに注意してください。 displayItemsリストよりもパイプライン。 (最後の要素がsortedListの場合、その後の処理なしで、リストを2回渡すだけです。)

他のヒント

DefaultEventTableModelを使用する場合は、すべて問題ありません。モデルがEventListソースにソーターを登録するとき。それはあなたの2番目のリストのように内部的に行われます。ソーターを手動で登録する場合は、コンパレーターを変更するためにすべてのコードを実装する必要があります(asc、descなど)。同じフィルタリングを使用しようとしたが、JXTable imhoはこのメカニズムをサポートしていないため、独自の方法でこれを行う必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top