2

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

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

4

6 回答 6

6

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

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

于 2008-09-22T15:09:33.957 回答
3

您必须首先在JTextFieldsDocument上附加一个侦听器,以便在用户输入字段(或更改字段)时收到通知。

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

要记住几件事:

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

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

于 2008-09-23T04:58:06.460 回答
1

使用休眠搜索。

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

于 2008-09-22T15:02:29.700 回答
1

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

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

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

于 2008-09-22T18:38:54.313 回答
1

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

于 2008-09-30T15:03:29.807 回答