如何在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,则显示两个......
答案 0 :(得分:3)
如果要组合多个过滤器,请使用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);