快速搜索java swing应用程序?

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

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

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

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

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

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

要记住以下几点:

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

我强烈建议您查看Glazed Lists – 这是一个更精细的开源Java库,它使您所要求的大部分内容非常容易。

使用Hibernate Search。

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

为了一石二鸟:有一个单独的索引线。 这将:

  1. 无论何时执行,都可以提高搜索速度。
  2. 由于索引在单独的线程中发生,因此提高了UI的响应能力。

当然, 确切地说,如何执行索引将根据您的特定应用程序而有很大差异。 这是开始研究的好地方: 搜索索引 。 请忽略对Web 3.0 [sic]的引用。

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