如何制作一个文本字段进行搜索(使用类似谷歌搜索的提示)



我想用java swing为PC制作一个窗口应用程序。我想在那里做一个文本字段。在输入该文本字段时,我需要它在该文本字段下显示提示。用户可以从列表中选择所需的文本。就像谷歌在浏览器中搜索一样。所以我需要两个函数,第一个很简单:通过已经键入的文本过滤一组字符串。但是如何在列表中显示它们呢?

编辑1:如果过滤后有什么要显示的,我需要显示列表,并且可以使用上下键进行选择。与谷歌搜索相同,但在PC应用程序上。

我建议您在JTextField中添加一个DocumentChangeListener来监控插入/删除/更新的字符:

JTextField textField = new JTextField;
textField.addDocumentListener (new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
  }
  public void removeUpdate(DocumentEvent e) {
  }
  public void insertUpdate(DocumentEvent e) {
  }
}
);

看看这个教程。

所以我需要两个函数,首先其中一个很简单:过滤一组字符串通过已键入的文本。

既然您已经键入了文本,请过滤您的字符串集。在选择从数据结构中存储和检索字符串的有效方式时要小心。有很多字符串要排序,这可能不是微不足道的。(我认为,如果字符串集很大,那么使用ArrayList将很难做到这一点。)

但是如何在列表中显示它们呢?

我认为你可以使用JLabel。或者,您可以尝试使用JComboBox实现自己的ComboBoxModel。我不知道是否可以一直打开组合框。

JComboBox是常见的选择。AutoCompleteJComboBoxer是我尝试过的一个。

嗯。。。。在JTextField中,为keypress添加一个监听器,然后在按下任何键时,使用一个集合对所有相关元素进行排序。一个选项是让String到toChar来获取每个字符,然后将记录发布到JList中。

其次,您最好将记录保存在XML中,这样跟踪就更容易了——任何类型的排序算法逻辑都可以很容易地应用。

相关内容

  • 没有找到相关文章

最新更新