Search code examples
javaswingjtablerowfilter

JTable regexFilter right int to filter first column?


what number in the regexFilter constructor for a JTable do i need to filter the first column? 0 or 1? e.g.

 ArrayList<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(3);
    TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(); 
    if(!fa.getCaseID().equals("*CASEID*")){
        filters.add(RowFilter.regexFilter(fa.getCaseID(),0));//filter first column
    }
    if(!fa.getState().equals("*ANY*")){
        filters.add(RowFilter.regexFilter(fa.getState(),4));//filter fifth column 
    }
    RowFilter<Object,Object> filter = RowFilter.andFilter(filters);
            sorter.setRowFilter(filter); 
            mTable.setRowSorter(sorter);

Solution

  • This is a little tricky because it's not explicitly stated in the RowFilter.regexFilter() docs, but you can infer from this snippet:

    Throws:

    NullPointerException - if regex is null
    IllegalArgumentException - if any of the indices are < 0
    PatternSyntaxException - if regex is not a valid regular expression.

    Even 0 is a legal argument. Consequently the first column would be 0.