【问题标题】:How to search specific string in JTable, not substring?如何在 JTable 中搜索特定字符串,而不是子字符串?
【发布时间】:2014-12-04 08:36:17
【问题描述】:

我已经搜索了 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”?

【问题讨论】:

    标签: java search filter jtable


    【解决方案1】:

    试试这个

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

    而不是

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

    【讨论】:

    • 它不工作。当我尝试使用字符串“NEAKTIVNO”时,它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多