Ищу комбо (просмотрщик) в SWT / JFace, который поддерживает автозаполнение

StackOverflow https://stackoverflow.com/questions/1069304

Вопрос

Я ищу 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), также может быть одним из способов достижения этой цели.

AutocompleteComboInput

Фрагмент кода для снимка экрана (см. ссылку на документацию выше для шаблона кода):

родовое слово

Надстройка требует, чтобы в библиотеку были добавлены все указанные ниже 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top