繁体   English   中英

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

[英]Best way to implement a selection box from a large number of entries

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

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

我在这里看到两个选项

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

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

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

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

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

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

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

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

http://swingx.java.net/

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

使用AutoComplete JComboBox / JTextField

  • 基于标准Java类

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

  • 没有问题FocusBackSpace KeyCaret

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM