0

JXTable の 1 行に複数のフィルターを追加するにはどうすればよいですか?

私は使用してみました:

int col = jxTable.getColumn("Tipo").getModelIndex();
RowFilter filter1 = RowFilters.regexFilter(0, "^N", col)
RowFilter filter2 = RowFilters.regexFilter(0, "^N", col)

jxTable.setRowFilter(filter1);
jxTable.setRowFilter(filter2);

しかしfilter2filter1

使用法:

フィルタリングする文字が異なる3つのチェックボックスを実行します。

[ ]A  [ ]B  [ ]C

A にチェックを入れた場合は A で始まるものだけを表示し、B と A にチェックを入れた場合は両方を表示します...

4

1 に答える 1

4

複数のフィルターを組み合わせる場合は、RowFilter.andFilter()またはメソッドを使用します。あなたの状況では、メソッドRowFilter.orFilter()を使用したいようですorFilter

手順:

  • テーブルに追加するすべてのフィルターを取得し、リストに入れます
  • RowFilter.andFilter()またはを呼び出して、リストのフィルタをs またはsRowFilter.orFilter()する単一のフィルタを作成します。ANDOR
  • 新規作成ANDまたはOR作成したフィルターを JXTable に適用します。

例:

//Code not tested
int col = jxTable.getColumn("Tipo").getModelIndex();
RowFilter filter1 = RowFilters.regexFilter(0, "^N", col)
RowFilter filter2 = RowFilters.regexFilter(0, "^N", col)

List<RowFilter> filters = new ArrayList<RowFilter>();
filters.add(filter1);
filters.add(filter2)
RowFilter orFilter = RowFilter.orFilter(filters);
jxTable.setRowFilter(orFilter);
于 2014-10-02T16:22:17.710 に答える