我使用SwingBits java库为每个列标题添加了一个带有过滤选项的JTable。现在除了列标题过滤器之外,我还按照在JTextField中输入的文本过滤我的最后一列。
问题是,一旦我使用列过滤器过滤jtable,并且我尝试使用TextField过滤器,过滤将应用于原始表而不是过滤后的视图。我理解表模型包含原始表数据,因此有解决此问题的方法吗?
答案 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);