2010-07-16 83 views
3

我們需要一個用於擺動的自動完成組件,與jdesktop/SwingX中的問題相比,我們必須使用組合框,並且在每個關鍵筆劃後,它只是向下滾動到最接近的匹配,但是該組合仍然擁有25.000個元素。它沒有顯示4個或5個最接近的匹配,因爲它們可以位於列表的不同位置。我們不想用25000顯示一個列表...擺動自動完成文本字段/下拉

有什麼類似的JSF自動完成或谷歌主頁中的一個?我們需要的是要求我們的界面類似

公開名單getOptions(字符串typedSoFar)組件{// 這裏我們根據我們的標準返回5相匹配的人,只是提供了//用戶這五個 }

回答

-2

我沒有使用過SwingX,對它的實現一無所知。最好的想法可能是擴展SwingX Autocomplete類。而不是直接使用自動填充類,創建一個私有類extendig自動填充類和重寫getOptions()方法:

class OurOwnAutocomplete extending swingx.*.*.autocomplete { 

    private List getOptions(String typedSoFar) { // 

    // logic 

    } 
+2

有一個在自動完成這樣的方法並不getOptions從swingX – Pablo 2010-07-17 06:36:16

5

一個非常簡單的方法來做到這一點是使用GlazedList實現自動完成的。起牀和跑步非常容易。你可以在這裏找到它:

http://publicobject.com/glazedlists/

可以安裝自動完成上一個JComboBox,與釉面的代​​碼只有一行,像這樣:

 
JComboBox comboBox = new JComboBox(); 
Object[] elements = new Object[] {"Cat", "Dog", "Lion", "Mouse"}; 
AutoCompleteSupport.install(comboBox, GlazedLists.eventListOf(elements)); 
1

GlazedList不是很好,也SwingX支持自動完成,比「GlazedList」更容易。 你只寫:

AutoCompleteDecorator.decorate(yourComboBox); 
+3

事情,這將使這個答案比較有幫助:有什麼不好有關GlazedList?鏈接到SwingX項目及其AutoCompleteDecorator?你在哪裏提供自動完成單詞列表? – 2012-12-03 19:27:25