Ищу комбо (просмотрщик) в SWT / JFace, который поддерживает автозаполнение
-
21-08-2019 - |
Вопрос
Я ищу Combo (Viewer) в SWT / JFace, который поддерживает автозаполнение / опережающий ввод, т.е. пользователь может ввести пару символов, и в раскрывающемся списке должны отображаться все совпадающие элементы.
Решение
Вы также можете ознакомиться с классом org.eclipse.jface.fieldassist.AutoCompleteField
.Это не комбо, просто текстовое поле, но оно очень легко добавляет функцию автозаполнения, как если бы это было комбо.Вы можете сделать что-нибудь очень простое:
Другие советы
Я не думаю, что что-то подобное встроено ни в Combo, ни в ComboViewer.
Как предполагает thehiatus, org.eclipse.jface.fieldassist.AutoCompleteField
, вероятно, лучшее место для поиска этого, однако есть поддержка Combos:
Возможно, вас заинтересует функция Content Assist Eclipse. Вы можете увидеть это в действии при использовании редактора Java Eclipse IDE. Когда вы редактируете исходный код, вы иногда будете видеть раскрывающееся меню с фразами, завершающими то, что вы набираете. (Обратите внимание, что вы можете нажать Ctrl + Пробел , чтобы раскрывающееся меню отобразилось.)
Вы также можете реализовать это в своем собственном приложении SWT / JFace. В " Руководстве разработчика Java по Eclipse " есть образец приложения, реализующего Content Assist. . Пример приложения представляет собой редактор SQL, и он описан в главе 26 «Создание настраиваемого текстового редактора с текстом JFace». На самом деле есть онлайн-обзор главы здесь а>. Пример проекта редактора SQL, com.ibm.jdg2e.editor.jfacetext.sql
, можно найти на здесь .
С другой стороны, если вы хотите создать свой собственный виджет Combo и автоматически заполнять его на основе вводимых данных, это может быть не очень применимо. Я думаю, что код сгенерированного кода может быть полезен (хотя я не уверен).
Проверьте: http://sourceforge.net/projects/swtaddons/
Я использую его в своем проекте (с небольшой настройкой).
Это действительно очень легко настроить.
Благодаря комментарию paz117, я подумал, что поделюсь кодом, чтобы эта работа работала:
родовое словоЕдинственная небольшая неприятность заключается в том, что вам нужно отдельно заполнять модель ComboViewer и AutoCompleteField отдельно, но это можно как минимум автоматизировать с помощью статического служебного метода или чего-то подобного.
В качестве справки для будущих посетителей AutocompleteComboInput (надстройка SWT), также может быть одним из способов достижения этой цели.
Фрагмент кода для снимка экрана (см. ссылку на документацию выше для шаблона кода):
родовое словоНадстройка требует, чтобы в библиотеку были добавлены все указанные ниже JAR: ( дополнительная информация )
- eclipse-equinox-common-3.5.0.jar
- net.sf.swtaddons_0.1.1_bin_src.jar ( sourceforge )
- org.eclipse.core.commands.jar
- org.eclipse.jface-3.6.0.jar
Щелкните здесь , чтобы просмотреть пакет JAR.