Java 将andFilter与orFIlter组合
我有一个名为newFilter的行过滤器的以下代码Java 将andFilter与orFIlter组合,java,swing,jtable,rowfilter,Java,Swing,Jtable,Rowfilter,我有一个名为newFilter的行过滤器的以下代码 private void newFilter() { RowFilter rfb = null; try //try catch block { List<RowFilter<Object,Object>> filtersb = new ArrayList<RowFilter<Object,Object>>(3); filtersb.add(
private void newFilter()
{
RowFilter rfb = null;
try //try catch block
{
List<RowFilter<Object,Object>> filtersb = new ArrayList<RowFilter<Object,Object>>(3);
filtersb.add(RowFilter.regexFilter("(?i)"+filterAthID.getText(), 0));
filtersb.add(RowFilter.regexFilter("(?i)"+filterForeName.getText(), 1));
filtersb.add(RowFilter.regexFilter("(?i)"+filterDate.getText(), 2));
rfb = RowFilter.andFilter(filtersb);
if(Blank.isShowing()==true)
{
List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
filters.add(RowFilter.regexFilter("(?i)"+filterForeName.getText(), 1));
filters.add(RowFilter.regexFilter("(?i)"+filterForeName.getText(), 2));
rfb = RowFilter.orFilter(filters);
}
}
catch (java.util.regex.PatternSyntaxException e)
{
return;
}
sorter.setRowFilter(rfb);
}
我尝试将这两个过滤器组合在一起,这样当Blank显示时,它将使用andFilter和orFilter。但是,这不起作用,因为rfb一次只能连接一个过滤器。这就引出了一个问题,如何组合这两行筛选器,以便在显示Blank时,系统使用filterAthID搜索列0,filterForeName搜索列1或2?请参阅:@camickr如果您指的是您的答案,您是说我可以在andFilter中放置一个orFilter吗?@camickr因为如果我在filterForeName中为列1和2然后它将要求我在这两个列中都有我正在搜索的结果,但是orFilter允许我只在其中一个列中有它。但是我也需要andFilter来搜索过滤器。我是说帖子回答了你关于如何合并过滤器的问题,所以这个问题应该标记为已回答。然后使用这个问题的概念,你应该能够解决这个问题。创建表示和条件的筛选器。创建表示或条件的筛选器。然后使用OR过滤器创建第三个过滤器。我不理解您的确切要求,因为您没有发布SSCCE来演示问题,所以我无法给出详细信息。@camickr谢谢您。我不知道我能够将过滤器调用到新的过滤器中