如何在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);


但是filter2会覆盖filter1

用法:

我会做3个复选框,用不同的字母进行过滤,

[ ]A  [ ]B  [ ]C


如果选中A,则仅显示以A开头的内容,如果选中B和A,则同时显示...

最佳答案

当您要组合多个过滤器时,请使用RowFilter.andFilter()RowFilter.orFilter()方法。对于您的情况,听起来像您想使用orFilter方法

脚步:


将您要添加到表格中的所有过滤器放入列表中
调用RowFilter.andFilter()RowFilter.orFilter()创建一个单个过滤器,该过滤器从列表中AND个或OR个过滤器。
将新创建的ANDOR过滤器应用到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);

关于java - 在JXTable上设置多个RowFilter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26164711/

10-11 00:20