Как создать панель поиска, похожую на стиль поиска Google, в графическом интерфейсе JAVA

Я пытаюсь создать функцию поиска в своей программе, аналогичную панели поиска Google, где, когда пользователь печатает, он фактически выполняет поиск в базе данных и отображает текущий результат во всплывающем списке под JTextField. Я новичок в программировании java GUI, поэтому я не совсем понимаю все компоненты java, поэтому трудно найти подходящие компоненты, которые удовлетворяют мои потребности, особенно компонент, который мне нужно использовать для всплывающего раскрывающегося списка под текстовым полем. Я надеюсь, что некоторые эксперты могут показать мне некоторое понимание.


person Paul Ang    schedule 24.10.2014    source источник
comment
Используя макеты, или вы можете использовать метод Component.setBounds(), чтобы разместить их в точном месте.   -  person Vighanesh Gursale    schedule 24.10.2014
comment
@VighaneshGursale Я понимаю часть менеджера компоновки, я пытаюсь понять, как мне сделать всплывающий список или окно, которое видно только и появляется, когда пользователь печатает в поле jText.   -  person Paul Ang    schedule 24.10.2014
comment
Итак, вы хотите список предложений. Я прав??   -  person Vighanesh Gursale    schedule 24.10.2014
comment
@VighaneshGursale Может ли список предложений появляться под текстовым полем, когда пользователь вводит текст и выбирает элемент внутри него?   -  person Paul Ang    schedule 24.10.2014
comment
Вы можете реализовать поиск solr, Apache с открытым исходным кодом. Он имеет все функции, которые вы ищете.   -  person Lokesh    schedule 24.10.2014
comment
Вы используете свинг?   -  person keuleJ    schedule 24.10.2014
comment
@Lokesh, не могли бы вы объяснить подробнее, пожалуйста? Я просто просматриваю их веб-сайт, и у них много списков проектов, я не знаю, с чего начать. Спасибо.   -  person Paul Ang    schedule 24.10.2014
comment
@keuleJ Да, я использую Swing   -  person Paul Ang    schedule 24.10.2014
comment
Я надеюсь, что этот блог даст вам некоторое представление о том, как он устроен и используется. kevindoran1.blogspot.com/2013/02/solr-tutorial.html   -  person Lokesh    schedule 24.10.2014


Ответы (1)


SwingX API поможет решить эту проблему. Вы можете использовать следующий код для реализации функции автозаполнения в редактируемом поле со списком.

import javax.swing.*;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;
import java.awt.*;
public class Demo {

    JFrame frame = new JFrame("");
    AutoCompleteDecorator decorator;
    JComboBox combobox;

    public Demo() {
        combobox = new JComboBox(new Object[]{"","Ester", "Jordi",
            "Jordina", "Jorge", "Sergi"});
        AutoCompleteDecorator.decorate(combobox);
        frame.setSize(400,400);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());

        frame.add(combobox);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        Demo d = new Demo();
    }
}
person Vighanesh Gursale    schedule 24.10.2014