2

これが私のシナリオです。アプリケーションに3つのビューがあり、そのうちの2つは、1つを除いて同じです。1つには追加のフィルタリングがあります。すべてのビューは、同じデータを(多少)異なる方法で表示するため、同じモデルを使用しています。2つの類似したビューは両方ともJTableであり、次のとおりです。

  • ビュー1は、基本レベルで結果をフィルタリングします
  • ビュー2(すべき)は、最初にこの同じ基本レベルと、より詳細なレベルでフィルタリングします

2番目のビューのフィルターを作成することはできますが、両方のビューが同じモデル(TableModelを実装)を使用しているため、データのモデルで同じ関数を呼び出します---getValueAt(int rowIndex, int columnIndex)現在は基本レベルでのみフィルター処理されます。

1番目のビューに影響を与えずに、2番目のビューを追加でフィルタリングする最も簡単な方法は何ですか?これをどのように実装しますか?

前もって感謝します。

4

1 に答える 1

6

Swing JTableは、箱から出してすぐに表示領域でのフィルタリングをサポートします。次のように使用します(並べ替えを有効にし、型キャストが欠落しています)

 RowFilter basic = ..
 RowFilter other = ...
 RowFilter finer = Rowfilter.andFilter(basic, other);

 basicTable.getRowSorter().setRowFilter(basic);
 finerTable.getRowSorter().setRowFilter(finer);
于 2012-02-26T12:09:15.150 に答える