JComboBox / JTextField的每个单词的自动完成位置

时间:2012-05-23 15:37:59

标签: java swing autocomplete jcombobox

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

例如,如果我有以下项目:

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

如果我输入 n ,我希望与 Green 匹配,因为它包含 n

以下是我之前测试的解决方案,它仅从头开始匹配:

  • 来自SwingX
  • 的AutoCompleteDecorator.decorate(comboBox)
  • AutoCompleteSupport.install(组合框, GlazedLists.eventListOf(元素));来自GlazedLists
  • jautocomp来自jautocomp
  • Java2sAutoComboBox.java

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

您是否知道其他类似于JQueryUI实现的解决方案?

1 个答案:

答案 0 :(得分: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.   
  3. “reen”在开头是否匹配“n”?不 - >下一个职位
  4.   
  5. “een”在开头是否匹配“n”?不 - >下一个职位
  6.   
  7. “en”在开头是否匹配“n”?不 - >下一个职位
  8.   
  9. “n”在开头是否与“n”匹配?是的 - >选择完整的单词(“绿色”)作为匹配
  10.