Java Swing отображает результат поиска во всплывающем окне под JTextField, например поиск в Facebook

Я пытаюсь смоделировать в java тот же предварительный просмотр результатов поиска на facebook, но в java я полагаю, что это будет:

  • JTextField: пользовательский ввод идет сюда
  • JList: содержит JList JPanels (результаты)
  • всплывающее окно или некоторый контейнер для хранения JList

Проблема в том, что мне не удалось отобразить всплывающее окно прямо под JTextField, я попробовал автозаполнение свинга, редактируемое поле со списком, glazedlists... но это не дает мне хороших результатов.

Кто-нибудь может мне помочь ?


person Abdo Belk    schedule 28.03.2011    source источник
comment
Что вы имеете в виду, но это не дает мне хороших результатов. Что вы видите и чего ожидаете? Также будет полезен SSCCE.   -  person no.good.at.coding    schedule 28.03.2011


Ответы (3)


При указании точки всплывающего окна предварительно вычислить (жестко закодировать) или динамически вычислить расположение нижнего левого угла текстового поля. Используйте это значение или это значение плюс несколько пикселей ниже в качестве местоположения для всплывающего окна.

person jzd    schedule 28.03.2011

Не зная больше о требованиях, я предлагаю изучить JWindow

person no.good.at.coding    schedule 28.03.2011

Я был так зол, что не смог найти готовый класс или .jar, который может делать то, что я хотел, поэтому я сделал свой собственный, на самом деле я использовал JWindow, и я сделал свое собственное раскрывающееся меню JTextField, которое расширяет Jтекстовое поле! прост в использовании: вертикальный список JPanels той же ширины, что и JTextField, рисуется и обновляется для отображения предложений каждый раз, когда пользователь вводит новый символ в JTextField, затем пользователь может выбирать (или нет) между этими предложениями с помощью клавиш со стрелками на клавиатуре. ВВЕРХ и ВНИЗ или щелчком мыши... и мы можем просто указать, хотим ли мы использовать фильтр документа для фильтрации пользовательского ввода (например, мы хотим просто получить числовые значения в JTextField)... и многое другое: это горные породы !

Я с удовольствием поделюсь этим классом в сети, мне просто нужно время, чтобы написать несколько уроков и примеров, а пока вот два снимка экрана того, что я сделал: один использует цвет градиента в JPanel, а другой использует цвет фона по умолчанию (не обращайте внимания на французские JLabels)

person Abdo Belk    schedule 03.04.2011