【问题标题】:Creating and using Multiple Filters/Searches using JTable or GlazedLists使用 JTable 或 GlazedLists 创建和使用多个过滤器/搜索
【发布时间】:2010-12-10 13:08:47
【问题描述】:

我在这里查找了如何在常规表中使用多个过滤器,答案都指向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:NameBrowserTableFormatTableModel

【问题讨论】:

    标签: java jtable filtering glazedlists


    【解决方案1】:

    TextFilterList 已弃用 - 请参阅 javadocs - 但这是一个附带问题。

    您可以在这里使用多种方法 - 如果您想要非常简单,那么只需将您的过滤器列表包装在另一个过滤器列表中:

    EventList filtered = new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor);
    

    更好的方法是使用多个匹配器编辑器创建CompositeMatcherEditor

    EventList filtered = new FilterList(nameE, new CompositeMatcherEditor(myFirstMatcherEditor, mySecondMatcherEditor));
    

    您可以使用 setMode 来控制您的编辑器是使用 AND 还是 OR 行为进行组合。

    这里是Must Read info 使用过滤器列表。

    here 提供的截屏视频也值得投入几分钟。

    【讨论】:

    • 第一个选项效果很好。要制作三分之一,您将使用:EventList filtered = new FilterList(new FilterList(new FilterList(new FilterList(nameE, myFirstMatcherEditor), mySecondMatcherEditor), myLastMatcherEditor); 对吗?第二个选项给了我一个错误。 CompositeMatcherEditor is not defined
    • 这里是 API 文档:publicobject.com/glazedlists/glazedlists-1.8.0/api - 毫无疑问,CompositeMatcherEditor 是正确的方法 - 像您所做的那样堆叠过滤器列表会起作用,但效率低下。
    • PS - 您的错误消息表明您没有正确的包导入。如果您不确定如何导入必要的包 (ca.odell.glazedlists.matchers),请告诉我。我真的建议您查看我在上面发布的必读信息 - 在该信息和截屏视频中都有非常好的示例代码。
    • 我导入了 ca.odell.glazedlists.*;必读信息中的屏幕截图似乎已失效。该网站是我的还是你的?
    • 正确 - 您没有正确的导入。您还必须导入 co.odell.glazedlists.matchers。* 我发布的必读信息链接根本没有屏幕截图——只有很多非常有用的文本。如果您询问的是 Screencasts(我发布的第二个链接),这些对我来说都很好。
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    相关资源
    最近更新 更多