powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое заполнение JComboBox и события
5 сообщений из 5, страница 1 из 1
Динамическое заполнение JComboBox и события
    #38699540
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class SomeDialog extends javax.swing.JPanel {
    
    public SomeDialog(java.awt.Frame parent, boolean modal, List<Profile> profileList) {
        super(parent, modal);
        initComponents();
        profileComboBox.setModel(new javax.swing.DefaultComboBoxModel(profileList.toArray()));
        ...
        profileComboBox.setSelectedItem(profile);
        ...
    }

    private void initComponents() {
        ...
        profileComboBox = new javax.swing.JComboBox();
        ...
        profileComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                profileComboBoxActionPerformed(evt);
            }
        });
        ...
    }


Вызов методов setModel() и setSelectedItem() само собой порождает событие ActionEvent..
Оно же возникает при смене элементов ComboBox-а, когда пользователь выбирает ручками элементы.
А вот как бы так сказать обработчику события, что, если это возникло когда фактически класс "ещё не готов" с ним работать (в частности, при вызове из конструктора или какого-то сеттера), то событие просто сбросить.
Пока на ум приходит простая проверка какой-то вспомогательной переменной, по типу:
Код: java
1.
volatile boolean canFire;


Но что-то способ не красивый, imho..
Может есть более мудрый подход?
...
Рейтинг: 0 / 0
Динамическое заполнение JComboBox и события
    #38699616
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierВызов методов setModel() и setSelectedItem() само собой порождает событие ActionEvent..

Очень странно. Особенно setModel() сфига ли его порождал.

mesierМожет есть более мудрый подход?
Вот эти два:
Код: java
1.
2.
//Prepare combobox here
profileComboBox.addActionListener(myComboBoxHandler);



Код: java
1.
2.
3.
profileComboBox.removeActionListener(myComboBoxHandler);
//Update combobox here
profileComboBox.addActionListener(myComboBoxHandler);
...
Рейтинг: 0 / 0
Динамическое заполнение JComboBox и события
    #38700011
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ.
Может в будущем пригодится.. ))
Кстати, вы правы насчет события. ActionEvent возникает при смене элемента пользователем и при завершении редактирования editable ComboBox-а. В моем случае возникает событие PropertyChange. А ошибка у меня в другои месте была.
Базобрался, спасибо! )
...
Рейтинг: 0 / 0
Динамическое заполнение JComboBox и события
    #38919762
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, доброе () !

Я тут немного не понял о чем речь, но у меня вопрос такой!!! Есть на Frame два ComboBox-а и на основе 1-го заполняется 2-ой, т.е. что укажешь в 1-ом, то и должно заполниться во 2-ом.

Я на 1-ый повесил ActionListener и на 2-ой, т.к. мне потом ещё и нужно от него что-то получить.
В первый раз всё получается и работает, но когда несколько раз 1-ый combobox потыкаешь, то почему то еще сам выполняется ActionListener 2-го combobox-а и выдает ошибку! Она не мешает пользователю, но в лог выкидывает exception. Его конечно можно try catch обработать, но как то мне это не нравится! Почему выполняется ActionListener 2-го ComboBox-а!? Можно ли в обработчике события узнать какое действие было сделано с ComboBox-ом!?
...
Рейтинг: 0 / 0
Динамическое заполнение JComboBox и события
    #38919763
Николаха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczmesierВызов методов setModel() и setSelectedItem() само собой порождает событие ActionEvent..

Очень странно. Особенно setModel() сфига ли его порождал.

mesierМожет есть более мудрый подход?
Вот эти два:
Код: java
1.
2.
//Prepare combobox here
profileComboBox.addActionListener(myComboBoxHandler);



Код: java
1.
2.
3.
profileComboBox.removeActionListener(myComboBoxHandler);
//Update combobox here
profileComboBox.addActionListener(myComboBoxHandler);



Ой, извиняюсь вопрос решен!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое заполнение JComboBox и события
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]