gpt4 book ai didi

Java Swing : Combine RowFilter. andFilter with RowFilter.orFilter

转载 作者:行者123 更新时间:2023-11-29 07:20:36 30 4
gpt4 key购买 nike

我无法完全让它发挥作用,而且我发现的示例仅适用于单个 RowFilter.andFilter 或 RowFilter.orFilter。有没有办法将两者结合起来得到类似 (A || B) && (C || D) 的东西?下面是我正在尝试的一些示例代码。

ArrayList<RowFilter<Object,Object>> arrLstColorFilters = new ArrayList<RowFilter<Object,Object>>();
ArrayList<RowFilter<Object,Object>> arrLstCandyFilters = new ArrayList<RowFilter<Object,Object>>();
RowFilter<Object,Object> colorFilter;
RowFilter<Object,Object> candyFilter;
TableRowSorter<TableModel> sorter;

// OR colors
RowFilter<Object,Object> blueFilter = RowFilter.regexFilter("Blue", myTable.getColumnModel().getColumnIndex("Color"));
RowFilter<Object,Object> redFilter = RowFilter.regexFilter("Red", myTable.getColumnModel().getColumnIndex("Color"));
arrLstColorFilters.add(redFilter);
arrLstColorFilters.add(blueFilter);
colorFilter = RowFilter.orFilter(arrLstColorFilters);

// OR candies
RowFilter<Object,Object> mAndMFilter = RowFilter.regexFilter("M&M", myTable.getColumnModel().getColumnIndex("Candy"));
RowFilter<Object,Object> mentosFilter = RowFilter.regexFilter("Mentos", myTable.getColumnModel().getColumnIndex("Candy"));
arrLstCandyFilters.add(mAndMFilter);
arrLstCandyFilters.add(mentosFilter);
candyFilter = RowFilter.orFilter(arrLstCandyFilters);

// Mentos and M&Ms that are red or blue (this is where I'm stuck)
sorter.setRowFilter(RowFilter.andFilter(candyFilter, colorFilter); //this does not work

如果有人可以为我在最后一行中尝试做的事情提供一个工作片段,将不胜感激。目前维护两个单独的表模型来规避这个问题,我想避免重复数据。

谢谢,凯

最佳答案

你的最后一行甚至没有编译,因为 andFilter 也需要一个列表而不是单独的参数。

否则您的示例似乎在我的测试中有效。我用以下代码替换了您示例中的最后一行:

ArrayList<RowFilter<Object, Object>> andFilters = new ArrayList<RowFilter<Object, Object>>();
andFilters.add(candyFilter);
andFilters.add(colorFilter);

sorter = new TableRowSorter<TableModel>(myTable.getModel());

// Mentos and M&Ms that are red or blue
sorter.setRowFilter(RowFilter.andFilter(andFilters));

myTable.setRowSorter(sorter);

请确保使用适当的表模型初始化 TableRowSorter。

关于Java Swing : Combine RowFilter. andFilter with RowFilter.orFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194948/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com