1

对于那些熟悉 SwingX 的人AutoCompleteDecorator,我有一个关于处理JComboBox's Popup Visibility 的问题。我AutoCompleteDecorate.decorate(JComboBox combobox)在我之前的帖子中已经提到的当前项目中使用过,我遇到的问题是,当用户键入与任何组合框项都不匹配的关键字时,弹出窗口仍然可见。为了方便用户,如果键入的关键字与任何组合框项目都不匹配,我想隐藏组合框的弹出窗口。

4

1 回答 1

1

如果您想要自动完成功能,但又不想出现弹出窗口(特别是,正如您所提到的,当输入的文本与任何项目都不匹配时),您可能想尝试开源JIDE Common Layer。它有一个非常有用的(我自己经常使用它)自动补全功能,您可以将其应用于JComboBoxes、JTextFields 等。

您可以通过单击上述页面上的“RUN IT”链接或单击此处查看组件的 Java Web Start 概述。导航

Demos->AutoCompletion Demo->AutoCompletion combo box and text field->AutoCompletion JTextField with a hidden data

试试看。您还可以通过单击Browse Source Code 查看源代码

您可以启用/禁用严格标志以防止/允许用户输入与项目不匹配的文本。

然而,据我测试,JIDE 的带有自动完成功能的组合框也有一个“问题”,即使没有找到匹配项,也会保持弹出窗口打开,但我在这里建议的是尝试一个没有弹出窗口的自动完成文本字段全部(它们会自动完成,突出显示您没有手动输入的匹配文本部分)。

于 2012-01-30T15:05:58.327 回答