用于不同COlumn的JTable多行滤波器

时间:2014-10-03 19:41:33

标签: java swing filter jtable jxtable

我正在使用此代码根据选中的复选框进行过滤

positiveFilter= RowFilters.regexFilter(0, "^pos", columnStatus);
        neutralFilter = RowFilters.regexFilter(0, "^neu", columnStatus);
        negativeFilter  = RowFilters.regexFilter(0, "^neg", columnStatus);

根据所选复选框,将过滤器添加到列表

filters = new ArrayList<RowFilter<TableModel, Object>>();

所以我将过滤器设置为一个过滤器

RowFilter<TableModel, Object>  compoundRowFilter  = rowFilter.orFilter(filters);

and then: jxTable.setRowFilter(compoundRowFilter);  //im using JXTable

现在的问题是我需要根据日期TOO过滤结果,

这里我获取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(过滤器);当我选择多个复选框时,它会停止工作...

ps:我试图避免对数据库的新查询使用特定的日期范围方法

因为数据并非一直都在变化,所以每次都不需要检查..

但我认为这只是真正的方式= \

0 个答案:

没有答案