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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> События в JComboBox, не могу разобраться с событиями 
V
    Опции темы
dajver
Дата 20.4.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


заблудившийся



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

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



У меня есть выпадающий список JComboBox.
Хочу понять, как отслеживать в нем выбор какого-либо элемента.

Вот только везде очень сложно это дается, я не могу до конца понять, смотрел здесь,  но там как-то слишком обще, читал Портянкина, но у него тоже очень круто все дано. Вынес только то, что использовать мне нужно ItemListener, но как это сделать? Мне не нужно редактирование, если я правильно понял модели - то в них я пока также не нуждаюсь.
Банальное отслеживание выбора.

Не поможете?
PM MAIL WWW   Вверх
powerOn
Дата 20.4.2007, 19:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Используй ActionListener:

Код

public class NewJFrame extends javax.swing.JFrame
{
    public NewJFrame()
    {
        initComponents();
    }
                        
    private void initComponents()
    {
        jComboBox1 = new javax.swing.JComboBox();

        getContentPane().setLayout(new java.awt.FlowLayout());

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jComboBox1ActionPerformed(evt);
            }
        });

        getContentPane().add(jComboBox1);

        pack();
    }                       

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt)                                           
    {                                               
        System.out.println(jComboBox1.getSelectedItem().toString());
    }                                          
    
    public static void main(String args[])
    {
        java.awt.EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                new NewJFrame().setVisible(true);
            }
        });
    }
                   
    private javax.swing.JComboBox jComboBox1;
}



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
dajver
Дата 20.4.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


заблудившийся



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

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



Спасибо, именно то, что я хотел.. smile 
PM MAIL WWW   Вверх
_Dancer_
Дата 18.3.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как организовать работу JComboBox  с клавиатурой? Получается, когда просто выбираешь стрелками нужный итем, каждый раз при переходе срабатывает ActionListener. А хотелось бы тогда чтоб дейтсвие происходило, когда уже будет выбран окончательный вариант(например по энетеру).Или какое тогда событие надо отлавливать? 
PM MAIL   Вверх
powerOn
Дата 18.3.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(_Dancer_ @  18.3.2008,  11:37 Найти цитируемый пост)
А хотелось бы тогда чтоб дейтсвие происходило, когда уже будет выбран окончательный вариант(например по энетеру).Или какое тогда событие надо отлавливать?  


Используй PopupMenuListener и отлавливай popupMenuWillBecomeInvisible.

Код

jComboBox1.addPopupMenuListener(new javax.swing.event.PopupMenuListener() {
            public void popupMenuCanceled(javax.swing.event.PopupMenuEvent evt) {
            }
            public void popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {
                     // your implementation here.
            }
            public void popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {
            }
        });



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
_Dancer_
Дата 19.3.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо! Только на самом деле приходится писать тело всех обработчиков, чтоб учесть отмену и уход с окна!
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.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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