Возможно ли, что Google предлагает подобную функциональность в Java SWT? - PullRequest
4 голосов
/ 31 декабря 2011

Мне нужен раскрывающийся список ComboBox, например, Google Search (то есть, когда мы вводим одну букву, отображаются элементы, начинающиеся с этой буквы). Когда появится раскрывающийся список, мы можем выбрать одно из слов в качестве значения для текстового поля.

Могу ли я сделать это в SWT?

comboLabel.addKeyListener(new KeyListener()
{
    @Override
    public void keyReleased(KeyEvent e)
    {
        ArrayList<String> listElements = new ArrayList<String>();
        // on pressing down arrow list gets expanded i.e list drops down
        if(e.keyCode == 16777218)
        {
            comboLabel.setListVisible(true);
        }
        // if key pressed is only a number of charecter or space.
        else if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 97 && e.keyCode <= 122) || e.keyCode == 32)
        {
            // for removing all previously assigned labels
            comboLabel.remove(0,comboLabel.getItemCount()-1);
            listElements = labels.getLabels(comboLabel.getText());
        }

        for (int i=0; i<listElements.size();i++)
        {
            comboLabel.add(listElements.get(i),i);
        }
    }
});

Ответы [ 3 ]

2 голосов
/ 31 декабря 2011

То, что вы имеете в виду, это автоматический совет ComboBox.Насколько я знаю, он не доступен ни в одной стандартной библиотеке виджетов Java.Тем не менее, многие люди создали свой собственный компонент автоматического предложения. Вот хороший пример с исходным кодом и расширением ".jnlp".

2 голосов
/ 31 декабря 2011

Не думаю, что в SWT есть что-то подобное.Виджеты в SWT должны соответствовать родным виджетам на всех платформах (как правило), поэтому реализовать что-то подобное будет сложно.Одним из мест для поиска новых или экспериментальных виджетов SWT является проект Nebula , но я там его тоже не вижу.

0 голосов
/ 31 декабря 2011

не должно быть сложно.Просто возьмите список, в котором находятся все ваши строки поиска, а затем выполните регулярные выражения или indexOf, или Collections.binarySearch и т. Д. Затем нарисуйте список вниз по текстовому полю со всеми параметрами.Я могу написать вам пример.Какой тип данных поиска?

...