4

我找到了在 JComboBox 上添加自动完成功能的不同解决方案,但它们都从一开始就通过自动完成功能工作。我正在寻找类似于JQueryUI AutoComplete的解决方案(如果您在文本字段中输入av,它会弹出JavaJavaScript)。

例如,如果我有以下物品:

  • “红色的”
  • “蓝色的”
  • “绿色的”

如果我输入n,我想与Green匹配,因为它包含一个n

这是我之前测试过的解决方案,它只从一开始就匹配:

  • 来自SwingX的 AutoCompleteDecorator.decorate(comboBox)
  • AutoCompleteSupport.install(comboBox, GlazedLists.eventListOf(elements)); 来自GlazedLists
  • 来自 jautocomp 的jautocomp
  • Java2sAutoComboBox.java

上面所有的解决方案都是从一开始就匹配的(都使用 startWith 方法),这不是我要找的。

你知道其他类似于 JQueryUI 实现的解决方案吗?

4

1 回答 1

0

您可以通过向它们提供子字符串而不是完整字符串来使用上述方法:

1. check against the full string
2. check against the substring starting at position 1
...
n. check against the substring starting at position `n-1`

受整个字符串长度的限制

因此,对于您的示例,您将执行以下操作:

  1. “Green”是否与开头的“n”匹配?否 -> 下一个位置
  2. “reen”在开头匹配“n”吗?否 -> 下一个位置
  3. “een”是否与开头的“n”匹配?否 -> 下一个位置
  4. “en”是否匹配开头的“n”?否 -> 下一个位置
  5. “n”是否与开头的“n”匹配?是 -> 选择完整的单词(“绿色”)作为匹配项
于 2012-05-23T15:47:54.397 回答