我正在尋找支持自動完成/提前輸入的SWT/JFace中的組合(查看器),即用戶可以輸入幾個字符和下拉列表應顯示所有匹配的元素。在SWT/JFace中尋找支持自動完成功能的組合(查看器)
回答
您還可以查看org.eclipse.jface.fieldassist.AutoCompleteField
課程。它不是一個組合,只是一個文本字段,但它增加了自動完成功能,就像它非常容易組合一樣。你可以做這樣簡單的東西:
Text textField = new Text(parentComposite, SWT.BORDER);
new AutoCompleteField(textField, new TextContentAdapter(), new String[]
{"autocomplete option 1", "autocomplete option 2"});
您可能感興趣的Eclipse's 「Content Assist」功能。使用Eclipse IDE的Java編輯器時,您可以看到它在運行。在編輯源代碼時,您有時會看到一個下拉菜單,其中包含完成正在輸入內容的短語。 (請注意,您可以按Ctrl + Space強制顯示下拉菜單。)
您也可以在您自己的SWT/JFace應用程序中實現此功能。 「Java Developer's Guide to Eclipse」有一個實現內容輔助的示例應用程序。示例應用程序是一個SQL編輯器,第26章「使用JFace文本構建自定義文本編輯器」對此進行了介紹。實際上有關於here一章的在線概述。示例SQL編輯器項目com.ibm.jdg2e.editor.jfacetext.sql
可以找到here。另一方面,如果你想創建自己的組合部件並根據輸入的輸入自動填充它,那麼這可能不是很適用。我認爲org.eclipse.jface.viewers.ComboViewer
可能會有幫助(雖然我不積極)。
我不認爲有這樣的內置或者組合或ComboViewer什麼。
由於thehiatus表明org.eclipse.jface.fieldassist.AutoCompleteField
可能是尋找這個最好的地方,然而,有一個功放音箱支持:
new AutoCompleteField(combo, new ComboContentAdapter(), new String[]
{"item0", "item1"});
退房:http://sourceforge.net/projects/swtaddons/
我用它在我的項目(有小調整)。
設置它真的很容易。
至於感謝paz117的評論,以爲我會分享代碼,以使這項工作:
String[] proposals = new String[controller.model().size()];
for (int i = 0; i < controller.model().size(); i++)
proposals[i] = controller.model().get(i).getAppropriateName();
comboViewer = new ComboViewer(parent, SWT.NONE);
comboViewer.setContentProvider(new ArrayContentProvider());
comboViewer.setLabelProvider(new AppropriateLabelProvider());
comboViewer.setInput(_controller.model());
// additionally, configure the comboViewer arbitrary
new AutoCompleteField(comboViewer.getCombo(), new ComboContentAdapter(), proposals);
唯一的小麻煩是,你必須單獨分開填充ComboViewer和AutoCompleteField的模型,但至少可以通過靜態工具方法或類似的方法自動化。
作爲未來訪問者的參考,AutocompleteComboInput(SWT附加組件)也可以成爲實現此目的的一種方法。
的截圖代碼段(參見文檔鏈接上面的代碼模板):
import net.sf.swtaddons.autocomplete.combo.AutocompleteComboInput;
...
subjectCodeCombo = new Combo(tab3Composite, SWT.DROP_DOWN);
// other code modifying Combo appearance here...
// returns a String[] of items retrieved from database
String[] subjectCodeArray = dbQuery.subjectsToArray();
subjectCodeCombo.setItems(subjectCodeArray);
subjectCodeCombo.setText("- SELECT -");
new AutocompleteComboInput(subjectCodeCombo);
的附加要求所有的JAR下面要添加到庫中:(more info)
- Eclipse的春分-共3.5.0.jar
- net.sf.swtaddons_0.1.1_b in_src.jar(sourceforge)
- org.eclipse.core.commands.jar
- org.eclipse.jface-3.6.0.jar
點擊here爲JAR包。
- 1. 尋找Windows Phone 7支持的SL4功能的完整列表
- 2. 尋找支持多項功能
- 3. 具有自動完成支持的iSeries的查詢管理器
- 4. 組合框自動完成自定義功能
- 5. JQuery UI:與遠程自動完成功能的組合框
- 6. 具有選定值和自動完成功能的組合框
- 7. Extjs - 與自動完成功能組合:兩種類型的值
- 8. 自動完成功能Java
- 9. struts2自動完成功能
- 10. vim自動完成功能
- 11. Extjs組合框自動完成功能不起作用
- 12. 組合框自動完成
- 13. jQuery的自動完成功能在IE
- 14. Silverlight中DatePicker的自動完成功能
- 15. Sharepoint 2010中的自動完成功能
- 16. F#2008中的自動完成功能
- 17. 自動校正,自動完成功能
- 18. 在MVC中創建具有自動完成功能的kendo組合框
- 19. 尋找MySQL客戶端的方法自動完成和其他功能
- 20. PHP中的自動完成組合框
- 21. 自動完成表中的組合框
- 22. 如何查看AngularJs和JS的功能以及自動完成中的建議?
- 23. 自動完成功能不完整
- 24. 自動附加支持行爲不完全成功
- 25. 問題在自動完成組合框
- 26. 的JavaScript自動完成功能的href
- 27. 支持舊瀏覽器的jquery自動完成插件
- 28. 使用jQuery的自動完成功能
- 29. 帶自動完成功能的jQuery Grid
- 30. jQuery的自動完成功能問題