2012-05-23 32 views
4

我發現不同的解決方案可以在JComboBox上添加自動完成,但所有這些解決方案都是從一開始就通過自動完成工作。我正在尋找類似於JQueryUI AutoComplete的解決方案(如果您在文本字段中輸入,它將彈出JavaJavaScript)。JComboBox/JTextField的每個字的任意位置自動完成

舉例來說,如果我有以下項目:

  • 「紅」
  • 「藍」
  • 「綠色」

如果我進入ñ,我會喜歡與綠色匹配,因爲它包含n

下面是我先前測試的解決方案只從一開始就相匹配,其中:

  • AutoCompleteDecorator.decorate從SwingX
  • AutoCompleteSupport.install(組合框)(組合框, GlazedLists.eventListOf(元素));從GlazedLists
  • jautocomp從jautocomp
  • Java2sAutoComboBox.java

所有的解決方案上面從一開始(所有使用startWith法),這是不是我要找的匹配。

您是否知道類似於JQueryUI實現的其他解決方案?

回答

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」匹配?是 - >選擇完整的單詞(「綠色」)作爲匹配
+0

你能否提供一個例子,我不確定我看到了怎麼做? – Ben

+0

@Ben - 查看更新 – Attila

+0

我認爲我理解了原理,但是如何相應地修改AutoCompleteDecorator,AutoCompleteSupport或其他解決方案? – Ben