Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTextField с выпадающим по мере ввода Popup 
:(
    Опции темы
Krivoy
Дата 7.4.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 6.2.2008
Где: г. Киров

Репутация: нет
Всего: нет



Многоуважаемые гуру подскажите  smile у как реализовать сабж? Popup не popup, а скорее ComboBox какой нить - короче как щас в гугле стало - по мере ввода значения в JTextField вниз выпадает окно с вариантами продолжения и при нажатии стрелки вниз выбирается значение из вариантов? Можно даже со скролом...
  Может плохо искал, но находил только popup по нажатию клавиши у мышки - или setComponentPopupMenu(ом) я не научился пользоваться?
 smile тогда!
PM MAIL   Вверх
dorogoyIV
Дата 7.4.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Krivoy @  7.4.2008,  14:05 Найти цитируемый пост)
 находил только popup по нажатию клавиши у мышки

причем здесь мышка?
вот, вводи слова "one", "two", "three", "four", "five"
Код

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

class Krivoy extends JFrame
             implements KeyListener
{
 JTextField jtf = new JTextField(20);
 Vector v = new Vector();
 JPopupMenu jpm = new JPopupMenu();
 JList jl;

 Krivoy()
 {
  setBounds(100,100,400,300);
  setLayout(new FlowLayout());

  add(jtf);
  jtf.addKeyListener(this);

  String [] s = {"one", "two", "three", "four", "five"};
  for(int i = 0; i < s.length; i++)
  {
   v.add(s [i]);
  }
  jl = new JList(v);
  jl.setPreferredSize(new Dimension(40, 40));
  jpm.add(new JScrollPane(jl));
 }

 public void keyPressed(KeyEvent e){}
 public void keyReleased(KeyEvent e)
 {
  for(int i = 0; i < v.size(); i++)
  {
   if(jtf.getText().equals(v.elementAt(i)))
   {
    jpm.show(e.getComponent(), 0, e.getComponent().getHeight());
    jl.setSelectedValue(jtf.getText(), true);
   }
  }
 }
 public void keyTyped(KeyEvent e){}

 public static void main(String [] args)
 {
  JFrame f = new Krivoy();
  f.setVisible(true);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

PM MAIL   Вверх
math64
Дата 7.4.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



Используй JComboBox, JTextField у него будет редактором, установи на него слушатель изменений и заполняй вывадающий список JComboBox соответственно.
PM   Вверх
Krivoy
Дата 8.4.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 6.2.2008
Где: г. Киров

Репутация: нет
Всего: нет



Цитата

Используй JComboBox, JTextField у него будет редактором, установи на него слушатель изменений и заполняй вывадающий список JComboBox соответственно.

Не то  smile 

Спасибо dorogoyIV за наводку - не совсем то что нужно, но в этом направлении буду пробовать...
PM MAIL   Вверх
repon
Дата 12.4.2010, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Цитата(math64 @ 7.4.2008,  15:00)
Используй JComboBox, JTextField у него будет редактором, установи на него слушатель изменений и заполняй вывадающий список JComboBox соответственно.

а примерчика нету?
PM MAIL   Вверх
jk1
Дата 12.4.2010, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Самый разнообразный autocomplete уже есть в SwingX. Там и подсветка и popup и разные правила совпадений.
SwingX Demo. В секции autocomplete этой демки показаны возможные варианты.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0621 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.