从大量条目实现选择框的最佳方法

我有一大组数据,用户必须从中选择一个。 我正在考虑实现它的方法(当然,在GUI中)。 我有一些想法。 但只是想在这里张贴,因为可能有更好的选择..

比如说,用户必须从一大组用户群中选择一个名称。 如果我只是为用户输入一个文本字段来输入名称,那么可能会出现诸如以不同格式输入相同名称,拼写错误等问题…

我在这里看到两个选择

  • 使用combobox
  • 使用一个列表(实际上我正在考虑类似于tool tip的东西。由于空间问题,我无法显示整个列表)

但是我觉得combobox不会对用户友好。 由于用户必须滚动整个列表以选择条目。 如果条目数太大,这将是

这意味着,现在我只留下一个选择。 弹出列表,将根据文本用户在文本字段中输入的内容更改内容。 因此,他可以输入前几个字母,列表将显示从输入文本开始的所有条目。 明白我的意思吧?

还有其他更好的方法来满足这种需求吗?

如果我要在上面实施,那么最好的方法是什么。 我正在考虑扩展JTextField以添加所需的function。 好吧,我会设置一些方法来设置弹出列表条目。 我将添加一些actionListner来观察文本字段,并相应地控制弹出列表…

自动完成是您可能正在寻找的。 谷歌针对“java swing jcombobox autocomplete”并限制了过去几年的结果,以获得相关结果。 关于如何使用自定义代码实现此function,将会有很多示例和想法。

我相信还有一些自定义库,比如“swingx”,它们提供至少部分或全部实现以节省时间。

http://swingx.java.net/

他们最近在今年年初发布了代码,因此它似乎很活跃并可能满足您的需求。

你可以看看SwingLab的自动完成function,它允许你将它附加到JCombBoxJListJTextComponent

使用AutoComplete JComboBox / JTextField

  • 基于标准Java类

  • 没有更大的数据集的问题

  • 没有问题FocusBackSpace KeyCaret

  • 为了更好的性能,需要在使用前对array进行排序

  • setStrict(true/false)简单解决方法,限制对array输入