このコードを使用して、どのチェックボックスが選択されているかに基づいてフィルタリングし、
positiveFilter= RowFilters.regexFilter(0, "^pos", columnStatus);
neutralFilter = RowFilters.regexFilter(0, "^neu", columnStatus);
negativeFilter = RowFilters.regexFilter(0, "^neg", columnStatus);
選択したチェックボックスに従って、フィルターをリストに追加します
filters = new ArrayList<RowFilter<TableModel, Object>>();
だから私はフィルターを1つのフィルターに設定します
RowFilter<TableModel, Object> compoundRowFilter = rowFilter.orFilter(filters);
and then: jxTable.setRowFilter(compoundRowFilter); //im using JXTable
問題は、日付に基づいて結果をフィルタリングする必要があることです。
ここで、選択した2つの日付の間の日付を取得し、フィルターに追加するので、テキスト行が開始/一致するかどうかを確認します
filtersData = new ArrayList<RowFilter<TableModel, Object>>();
dates = new ArrayList<LocalDate>();
for (Date data : obtenerFechasDiariasIntervalo(jxdatainicial.getDate(), jxdatafinal.getDate())) {
filtersData.add(RowFilters.regexFilter(0, "^" + longFormat.format(data) + "", 5));
}
しかし、両方のフィルターを一緒に使用することは不可能だと思います
お気に入り:
compoundRowFilter = RowFilter.orFilter(filtersData).orFilter(filters);
上記でこれを使用すると、チェックボックスに基づいてすべての結果が返されます
andFilter(filters); を使用する場合 複数のチェックボックスを選択すると動作しなくなります...
ps: 特定の日付範囲メソッドを使用するために、データベースへの新しいクエリを回避しようとしています
データは常に変更されるわけではないので、毎回チェックする必要はありません..
しかし、これは本当の方法だと思います=\