Вопрос по jtextfield, swingx, tooltip, java, swing – Лучший способ реализовать поле выбора из большого количества записей

3

У меня есть большой набор данных, из которых пользователь должен выбрать один. Я думаю о способе его реализации (конечно, в графическом интерфейсе). У меня есть несколько идей. Но только подумал о публикации здесь, поскольку могут быть лучшие альтернативы ..

Скажем, пользователь должен выбрать имя из большого набора пользователей. Если я просто введу текстовое поле для ввода пользователем имени, то могут возникнуть проблемы, такие как ввод одного и того же имени в разных форматах, орфография и т. Д.

Я вижу два варианта здесь

  • Using a combo box
  • Using a list (Actually i'm thinking of something like a tool tip. As I cant show the whole list always due to space issues)

Но я думаю, что поле со списком не будет очень удобным для пользователя. Поскольку пользователю придется прокручивать весь список, чтобы выбрать запись. Если количество записей слишком велико, это будет

Это означает, что теперь я оставил только один вариант. Всплывающий список, который изменит содержание в соответствии с текстом, который пользователь вводит в текстовое поле. Таким образом, он может набрать первые несколько букв, и в списке будут показаны все записи, начиная с введенного текста. Понял мою точку зрения, верно?

Есть ли что-нибудь еще лучше для достижения такого рода потребностей?

Если я собираюсь реализовать выше, что будет лучшим способом следовать. Я думаю о расширенииJTextField добавить необходимую функциональность. Хорошо, я добавлю некоторый метод для установки записей всплывающего списка. И я добавлю немногоactionListner смотреть текстовое поле и соответственно управлять всплывающим списком ...

Ваш Ответ

3   ответа
4

что вы, вероятно, ищете. Google для "автозаполнения java swing jcombobox" & quot; и ограничить результаты за последние пару лет, чтобы получить соответствующие результаты. Будет много примеров и идей о том, как реализовать это с помощью пользовательского кода.

Я полагаю, что есть также некоторые пользовательские библиотеки, такие как "swingx" которые обеспечивают по крайней мере частичные или полные реализации, чтобы сэкономить время.

http://swingx.java.net/

Они выпустили код только в начале этого года, поэтому он выглядит активным и может иметь то, что вам нужно.

+1 конечно - хотя должно читатьas recently as a couple of weeks ago :-) текущая версия 1.6.4, выпущенная в конце июля 2012 года
Большое спасибо @BillR. Я нашел это очень простым в использованииAutoCompleteDecorator вswingx, Я не буду делать огромных изменений, его можно просто прикрепить к моим существующим компонентам. Может использоваться сJComboBox а такжеJTextField, (Может быть, с некоторыми другими, но я использовал только эти два) Anubis
3

Автозаполнение JComboBox / JTextField

based on Standard Java Classes

no issue with larger sets of data

no issue with Focus, BackSpace Key, Caret

for better performance to required sort the array before use

simple workaround for setStrict(true/false), restrict input to array

Спасибо @mKorbel! Anubis
4

автозаполнения особенность, это позволяет вам прикрепить его кJCombBox, JList или жеJTextComponent

Большое спасибо @MadProgrammer не знал о такой вещи .. Anubis

Похожие вопросы