使用JTable或GlazedLists创建和使用多个过滤器/搜索
-
06-07-2019 - |
题
我查看了如何在这里使用多个过滤器和常规表,答案都指向 GlazedLists 代码>
。但是,答案没有具体说明如何使用它。我能够让一个过滤器工作,但不知道如何获得多个过滤器。
对于我使用的一个过滤器:
// nameE is a BasicEventList containing classes (name) which
// contain the table values
TextFilterList filtered = new TextFilterList(nameE);
JTextField filterEdit = filtered.getFilterEdit();
// Inside the table value class (name) there is a filter for myName
public void getFilterStrings(List baseList) {
baseList.add(myName);
}
复制代码并创建另一个 <代码> JTextField 不起作用。我看了这个问题,它出现了 CompositeMatcherEditor
可能有效。问题是我不知道如何实现这一点。
另外,我正在使用Eclipse。我下载了 GlazedLists
1.8.0并将其删除到Eclipse中。但是,我不能使用它。我到处都是红色正方形(源文件夹除外)!我甚至添加了jar文件。
我希望我已经正确地解释了自己。如果我需要扩展,请告诉我。
我的Pastebin:名称,浏览器, TableFormat , TableModel
解决方案
不推荐使用TextFilterList - 请参阅 javadocs - 但这是一个副作用。
您可以在这里使用几种方法 - 如果您想要非常简单,那么只需将您的过滤器列表包装在另一个过滤器列表中:
EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);
更好的方法是使用多个匹配器编辑器来创建 CompositeMatcherEditor :
EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));
您可以使用setMode控制是否使用AND或OR行为合并您的编辑器。
以下是有关使用过滤器列表的必读信息。
此处提供的截屏视频也值得花几分钟投资。
不隶属于 StackOverflow