java swing应用程序中的快速搜索?

java swing应用程序中的快速搜索?,java,swing,search,Java,Swing,Search,我在想,在swing中显示快速搜索结果的最佳组件是什么。我想创建类似这样的内容,创建一个文本字段,用户可以在其中输入一些文本,在输入过程中,我将改进后端对数据库的快速搜索,我希望在文本框下方显示数据,他将能够浏览结果,在输入前,结果将显示在表中。所以我的问题是,是否有任何组件已经有了这种显示逻辑? 或者不是,什么是实现这一点的最佳方式 这个搜索将是ajax在web上给我的东西,同样的逻辑,同样的外观,如果在桌面应用程序上可能的话。使用Hibernate搜索 SwingHack()书中有这样一个例

我在想,在swing中显示快速搜索结果的最佳组件是什么。我想创建类似这样的内容,创建一个文本字段,用户可以在其中输入一些文本,在输入过程中,我将改进后端对数据库的快速搜索,我希望在文本框下方显示数据,他将能够浏览结果,在输入前,结果将显示在表中。所以我的问题是,是否有任何组件已经有了这种显示逻辑? 或者不是,什么是实现这一点的最佳方式

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

使用Hibernate搜索


SwingHack()书中有这样一个例子。

您必须首先将侦听器附加到
JTextField
s
文档中,以便在用户在该字段中键入(或更改它)时得到通知

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

需要记住的几件事:

  • 对后端执行搜索的代码必须位于另一个线程中
  • 更新列表框的代码应更新列表框的模型
  • 您需要管理所有后端搜索结果,以便只使用最新结果更新列表框(例如,用户键入'A',backenf搜索。同时,用户键入'C',开始后端搜索'AC'。如果'AC'搜索结果可用,您需要确保'A'搜索的结果不会进入列表框)

  • 您是否正在寻找类似JavaSwing的自动完成组件


    有这样一个组件。有关JavaDoc,请参阅。它有许多实用方法可以执行各种操作,例如,从JList的内容自动完成文本框。

    为了一箭双雕:有一个单独的索引线程。这将:

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

  • 当然,您执行索引的具体方式将因您的具体应用程序而异。这里是一个开始研究的好地方:。请忽略对Web 3.0[sic]的引用.

    我强烈建议您看一看-这是一个更好的开源Java库,它使您所询问的大部分内容变得非常简单。

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

    谢谢你的提示。我下载了swingx类并尝试了:ArrayList nums=new ArrayList();numsadd(new StringBuffer(“4000”);nums.add(new StringBuffer(“5000”);autoCompleteAdaptor=new TextComponentAdapter(numsInput,nums);其中numsInput是一个JTextField。我不知道接下来需要设置什么。您知道我在哪里可以找到开始使用的示例吗?