用Java实现自动补全
我正在使用weather Underground在Java中创建一个天气应用程序,我发现它确实有一些城市的数据 最初,我计划使用用Java实现自动补全,java,search,autocomplete,Java,Search,Autocomplete,我正在使用weather Underground在Java中创建一个天气应用程序,我发现它确实有一些城市的数据 最初,我计划使用GeopIP自动获取用户的位置,但由于对城市的支持有限,我决定让用户在每次程序启动时选择城市 我希望用户能够选择一个城市,从一个是由地下天气支持。用户将输入名称,当他/她输入名称时,可能的位置将以与图片中所示类似的方式显示 我的问题是: 如何实现此搜索功能 我最初的猜测是创建一个包含所有城市名称的向量,然后使用蛮力找到匹配项并显示在JPopup或包含JList的JWin
GeopIP
自动获取用户的位置,但由于对城市的支持有限,我决定让用户在每次程序启动时选择城市
我希望用户能够选择一个城市,从一个是由地下天气支持。用户将输入名称,当他/她输入名称时,可能的位置将以与图片中所示类似的方式显示
我的问题是:向量
,然后使用蛮力找到匹配项并显示在JPopup
或包含JList的JWindow中,但我想一定有更好的方法
改写:
我不明白的是,我必须使用的数据结构中保留了哪些信息?我是否应该手动创建一个支持地下天气的城市列表,或者有其他方法吗?查看数据结构(也称为数字树或前缀树)。自动完成是它的有用性最常见的例子之一
下面的文章有一个很好的解释:
看看数据结构(也称为数字树或前缀树)。自动完成是它的有用性最常见的例子之一
下面的文章有一个很好的解释:
如果你在谷歌上搜索,你会得到一些有趣的结果:
一个是用JavaFX编写的——我自己已经使用并扩展了它。它很有用。JavaFX“免费”提供的功能:鼠标右键点击的上下文菜单自动生成,包含一些常用的“内容”,如剪切、复制和粘贴,甚至撤销!因此,我可以推荐这种解决方案。进入JavaFX并不难,而且我认为它比Swing更容易学习,而且看起来更酷!然而,这种实现有一些缺点——特别是当布局没有左对齐时,因为它只是组合框顶部的一个文本字段
好的-但是如果你想坚持挥杆-你可以使用。我自己也没有使用过,但是代码看起来非常简单,比JavaFX的实现更干净,我必须承认(但是它有一些很好的特性)。那么-也许你可以尝试-并扩展它?它只构建在JComboBox
上,如果你用谷歌搜索,你会得到一些有趣的结果:
一个是用JavaFX编写的——我自己已经使用并扩展了它。它很有用。JavaFX“免费”提供的功能:鼠标右键点击的上下文菜单自动生成,包含一些常用的“内容”,如剪切、复制和粘贴,甚至撤销!因此,我可以推荐这种解决方案。进入JavaFX并不难,而且我认为它比Swing更容易学习,而且看起来更酷!然而,这种实现有一些缺点——特别是当布局没有左对齐时,因为它只是组合框顶部的一个文本字段
好的-但是如果你想坚持挥杆-你可以使用。我自己也没有使用过,但是代码看起来非常简单,比JavaFX的实现更干净,我必须承认(但是它有一些很好的特性)。那么-也许你可以尝试-并扩展它?它只是建立在JComboBox
不,这正是你做这件事的方式(除了不使用Vector
s):(在许多其他方法中)这里的具体代码。不,这正是你做这件事的方式(除了不使用Vector
s):(在许多其他方法中)这里的具体代码。