将过滤器重新应用于过滤的JTable视图

时间:2016-01-09 03:05:46

标签: java swing jtable tablemodel rowfilter

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

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

1 个答案:

答案 0 :(得分:1)

你需要使用"和过滤器"将多个过滤器合并为一个。

例如,请查看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);