Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将andFilter与orFIlter组合_Java_Swing_Jtable_Rowfilter - Fatal编程技术网

Java 将andFilter与orFIlter组合

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(

我有一个名为newFilter的行过滤器的以下代码

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谢谢您。我不知道我能够将过滤器调用到新的过滤器中