如何在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
个过滤器。
将新创建的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);
关于java - 在JXTable上设置多个RowFilter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26164711/