Вопрос

Сам брожу, какой компонент лучше всего подходит для отображения результатов быстрого поиска в свинге.Я хочу создать что-то вроде этого, создать текстовое поле, в которое пользователь может ввести текст, во время его ввода я улучшу внутренний быстрый поиск в базе данных, и я хочу отображать данные под текстовым полем, и он сможет для просмотра результатов и при предварительном вводе результат будет отображен в таблице.Итак, мой вопрос: есть ли какой-нибудь компонент, который уже имеет эту логику для отображения?Или это не так, как лучше всего это реализовать.

Этот поиск будет чем-то вроде того, что ajax дает мне в Интернете, та же логика, тот же внешний вид, если это возможно в настольном приложении.

Это было полезно?

Решение

Вы ищете что-то вроде компонента автозаполнения для Java Swing?

SwingX есть такой компонент.Видеть здесь для JavaDoc.Он имеет множество служебных методов для выполнения различных задач, т.е.автозаполнение текстового поля из содержимого JList.

Другие советы

Сначала вам нужно будет подключить прослушиватель к JTextFieldс Document получать уведомления всякий раз, когда пользователь вводит поле (или меняет его).

Оттуда вы можете запустить любой необходимый вам серверный код.Результаты этого можно использовать для обновления списка.

Несколько вещей, которые следует иметь в виду:

  1. Код для поиска по серверной части должен находиться в другом потоке.
  2. Код, который обновляет поле списка, должен обновить модель списка.
  3. Вам нужно будет управлять всеми результатами внутреннего поиска, чтобы обновлять список только самыми последними результатами (например,пользователь вводит «A», backenf ищет это.Тем временем пользователь набрал «C», запустив внутренний поиск по слову «AC».Вам необходимо убедиться, что результаты поиска «A» не попадают в список, если результаты поиска «AC» доступны).

Я настоятельно рекомендую вам взглянуть на Застекленные списки - это одна из лучших Java-библиотек с открытым исходным кодом, и она делает большую часть того, о чем вы спрашиваете, очень простым.

Используйте поиск в спящем режиме.

СвингХак (http://oreilly.com/catalog/9780596009076/) в книге есть пример этого.

В интересах убийства двух зайцев одним выстрелом:иметь отдельный поток индексирования.Это будет:

  1. Улучшите скорость поиска при каждом его выполнении.
  2. Улучшите скорость реагирования пользовательского интерфейса, поскольку индексирование происходит в отдельном потоке.

Конечно, точно способ выполнения индексации будет сильно различаться в зависимости от вашего конкретного приложения.Вот хорошее место для начала исследования: Поисковое индексирование.И, пожалуйста, не обращайте внимания на ссылку на Веб 3.0 [так в оригинале].

Это возможно, конечно.Это тоже просто.Для выпадающего списка терминов просто используйте всплывающее меню.Это просто.Фоновая обработка введенного текста также проста.Наслаждаться!

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