Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2010, 04:27   #1
JAD!
Форумчанин
 
Регистрация: 15.05.2009
Сообщений: 118
По умолчанию Event на класс

Здравствуйте. Задача вроде не сложная..
Значит есть класс, который жрёт БД.. Жрёт долго поэтому нужен прогресс бар. Жрёт в паралельном потоке с ГУИ и динамически строки добавляются в таблицу синхронизацией. Тупо параллельным трендом пихать инфу в прогрессБар тоже не катит, говорит, чо нужно dispatch Thread.. чтобы он перерисовывался, а так фиг. Этот диспатч тренд можно представить через ивент. Соответственно, я надеюсь можно чтобы мой класс при загрузке новой строки генерировал свой ивент, а на прогрессбар навесить ИвентЛисенер, который будет обрабатывать ивент этого класса... А теперь вопрос: как это сделать?!
Есть конечно решение моей задачи полегче - навесть лисенер на таблицу и считать и обновлять прогресбар про добавлении инфы в таблицу, но мне этот метод не очень нравится, может кто сталкивался с подобной задачей, кто делал свои события и своих слушателей?! Заранее спасибо.
If (что-то чинить)
{(надо знать его конструкцию, что-то в этом понимать)->чинить;} else {платите ваши деньги;}
JAD! вне форума Ответить с цитированием
Старый 18.10.2010, 11:56   #2
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Ваш класс должен иметь возможность регистрировать в нем слушателей ChangeListener. при необходимых изменениях состояния вызывать через SwingUtilities.invokeLater(Runnable ) всех зарегистрированных слушателей и передавать создаваемый ивент(т.к. ваш класс может крутиться вне потока событий).
ивент имеет только один актуальный метод - getSource(), который должен возвращать ссылку на экземпляр вашего класса.

в последствии к экземпляру вашего класса надо добавить слушателя.

Код:
someClassInstance.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                someProgressBar.setValue(((SomeClass)evt.getSource()).getValue());
            }
        });
наиболее оптимально в данном случае абстрагироваться за врапперами и интерфейсами.

желаю удачи.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Event... MyLastHit Общие вопросы Delphi 5 31.07.2010 01:35
Очистка стека event-ов Ivan_32 JavaScript, Ajax 0 06.02.2010 01:48
Open/Save Dialog & Mouse Move event megachuhancer Общие вопросы Delphi 2 22.01.2010 08:03
Объект события Event Gerzs Общие вопросы Delphi 0 01.11.2009 10:08
Event для TextField goog Общие вопросы по Java, Java SE, Kotlin 0 15.03.2009 00:17