2014-10-09 83 views
0

我已经搜索了JTable。该代码过滤两列。一列有两个相似的词,所以过滤器不起作用。这里是我的代码:如何搜索JTable中的特定字符串,而不是子字符串?

RowFilter<DefaultTableModel, Object> firstFiler = null; 
    RowFilter<DefaultTableModel, Object> secondFilter = null; 
    List<RowFilter<DefaultTableModel,Object>> filters = new  ArrayList<RowFilter<DefaultTableModel,Object>>(); 
    RowFilter<DefaultTableModel, Object> compoundRowFilter = null; 

    try { 
     secondFilter = RowFilter.regexFilter(this.filter, 12); 
     firstFiler = RowFilter.regexFilter("AKTIVAN", 8); 
     filters.add(firstFiler); 
     filters.add(secondFilter); 
     compoundRowFilter = RowFilter.andFilter(filters); 
    } catch (java.util.regex.PatternSyntaxException e) { 
     return; 
    } 

    final TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>((DefaultTableModel) printTable.getModel()); 

    sorter.setRowFilter(compoundRowFilter); 
    printTable.setRowSorter(sorter); 

在第8栏我有词“NEAKTIVAN”,“AKTIVAN”。如何搜索“AKTIVAN”?

回答

0

试试这个

firstFiler = RowFilter.regexFilter("\bAKTIVAN\b", 8); 

代替

firstFiler = RowFilter.regexFilter("AKTIVAN", 8); 
+0

它不工作。当我尝试用字符串“NEAKTIVNO”它的作品。 – 2014-10-09 12:29:40