【问题标题】:Re-applying filter to filtered JTable view将过滤器重新应用于过滤的 JTable 视图
【发布时间】:2016-01-09 03:05:46
【问题描述】:

我有一个使用 SwingBits java 库添加到每个列标题的过滤选项的 JTable。现在,除了列标题过滤器之外,我还通过在 JTextField 中输入的文本过滤最后一列。

问题是,一旦我使用列过滤器过滤 jtable,并尝试使用 TextField 过滤器,过滤将应用于原始表而不是过滤后的视图。我了解表模型包含原始表数据,请问有解决此问题的方法吗?

【问题讨论】:

    标签: java swing jtable tablemodel rowfilter


    【解决方案1】:

    您需要使用“andFilter”将多个过滤器合并为一个。

    例如,查看 Sorting and Filtering 上的 Swing 教程部分。您可以使用如下代码修改演示,以过滤在两列中找到文本的行,而不仅仅是一列:

    //rf = RowFilter.regexFilter(filterText.getText(), 1);
    List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
    filters.add(RowFilter.regexFilter(filterText.getText(), 0));
    filters.add(RowFilter.regexFilter(filterText.getText(), 1));
    rf = RowFilter.andFilter(filters);
    

    【讨论】:

    • 就我而言,它并不那么简单。因为我使用 SwingBits(它是一个外部库)进行列标题过滤,所以它有自己的过滤机制,我在研究源代码后仍然不太了解。我不知道如何将它与我的有效负载过滤器集成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2011-11-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多