【问题标题】:Fast search in java swing applications?java swing应用程序中的快速搜索?
【发布时间】:2010-09-12 00:45:21
【问题描述】:

我在琢磨什么组件最适合在 swing 中显示快速搜索结果。我想创建这样的东西,创建一个文本字段,用户可以在其中输入一些文本,在他输入期间我将改进后端快速搜索数据库,我想在文本框下方显示数据,他将能够浏览结果并在预输入结果将显示在表格中。所以我的问题是是否有任何组件已经具有这种显示逻辑? 或者不是,实现它的最佳方法是什么。

如果在桌面应用程序上可能的话,这个搜索将是 ajax 在网络上给我的东西,相同的逻辑相同的外观和感觉。

【问题讨论】:

    标签: java swing search


    【解决方案1】:

    当然可以。这也很简单。对于术语的下拉列表,只需使用弹出菜单。这很简单。输入文本的后台处理也很简单。享受吧!

    【讨论】:

      【解决方案2】:

      我强烈、强烈建议您查看Glazed Lists - 这是目前最好的开源 Java 库之一,它使您所询问的大部分内容变得超级简单。

      【讨论】:

        【解决方案3】:

        为了用一块石头杀死两只鸟:有一个单独的索引线程。这将:

        1. 提高执行搜索时的搜索速度。
        2. 提高 UI 的响应能力,因为索引是在单独的线程中进行的。

        当然,确切您执行索引的方式会因您的特定应用程序而异。这是开始研究的好地方:Search Indexing。请忽略对 Web 3.0 [原文如此] 的引用。

        【讨论】:

          【解决方案4】:

          您是否正在寻找类似 Java Swing 的 AutoComplete 组件?

          SwingX 有这样一个组件。有关 JavaDoc,请参阅 here。它有很多实用方法来做各种事情,即从 JList 的内容中自动完成文本框。

          【讨论】:

          • 感谢您的提示。我下载了 swingx 类并尝试了: ArrayList nums = new ArrayList(); numsadd(new StringBuffer("4000")); nums.add(new StringBuffer("5000")); autoCompleteAdaptor = new TextComponentAdaptor(numsInput,nums);其中 numsInput 是一个 JTextField。我不知道接下来我需要设置什么。您是否知道我在哪里可以找到开始使用的示例?
          【解决方案5】:

          您必须首先将侦听器附加到JTextFields Document,以便在用户在字段中键入(或更改)时收到通知。

          从那里,您可以启动所需的任何服务器端代码。其结果可用于更新列表框。

          需要注意的几点:

          1. 对后端进行搜索的代码必须在另一个线程中
          2. 更新列表框的代码应该更新列表框的模型
          3. 您需要管理所有后端搜索结果,以便仅使用最新结果更新列表框(例如,用户输入“A”,backenf 搜索该结果。同时,用户输入“C”,开始后端搜索“AC”。如果“AC”搜索结果可用,您需要确保“A”搜索的结果不会出现在列表框中)。

          【讨论】:

            【解决方案6】:

            使用休眠搜索。

            SwingHack (http://oreilly.com/catalog/9780596009076/) 书中有一个例子。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-11-10
              • 2011-05-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-07-23
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多