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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Fire custom event, kak? 
V
    Опции темы
PashaOvechkin
Дата 24.4.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

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



Привет!

Создаю свой ивент, создаю слушатель под него как в етом примере -> http://www.exampledepot.com/egs/java.util/CustEvent.html
Етот слушатель добавляю к компоненту.

Совершенно из другого класса (и потока тоже) мне нужно бростить ивент, ну и при етом слушатель у компонента должен его словить.

Листенер
Код

public interface ChangeLanguageListener extends EventListener{
    public void changeLanguageOccurred(ChangeLanguageEvent evt);
}

Евент
Код

public class ChangeLanguageEvent extends EventObject {
    public ChangeLanguageEvent(Object source) {
        super(source);
    }
}


Класс который имплементирует листенер :
Код

public class JLButton extends JButton implements ChangeLanguageListener{
    
    private String outoutId = null;
    protected javax.swing.event.EventListenerList listenerList =
                new javax.swing.event.EventListenerList();
                
    public JLButton() {
        super();
    }
    
    public JLButton(String name) {
        super(name);        
    }
    
    public void changeLanguageOccurred(ChangeLanguageEvent evt) {
        System.out.println("!!!!!!!!!!!!!!!!!!!");
    }
}


Бросаю событие : 

Код

ChangeLanguageEvent event = new ChangeLanguageEvent("aaaaa");


Ето не работает...
Как правильно?
PM MAIL Skype   Вверх
ivg
Дата 24.4.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(PashaOvechkin @  24.4.2008,  13:08 Найти цитируемый пост)
Класс который имплементирует листенер

А где класс, который производит "диспетчеризацию" событий? По ссылке этим занимается код класса MyClass;
Цитата(PashaOvechkin @  24.4.2008,  13:08 Найти цитируемый пост)
Бросаю событие

Само по себе создание объекта класса ChangeLanguageEvent ничего такого не делает. Никакой магии  smile
Цитата(PashaOvechkin @  24.4.2008,  13:08 Найти цитируемый пост)
Как правильно?

Событие смены языковых настроек в интерфейсе приложения - глобально для приложения в целом. Так?
Тогда listenerList, addEventListener(), removeEventListener(), fireEvent() реализуйте в классе, например, Application или в классе основного окна.
Тогда бросание события будет выглядеть примерно так
Код

ChangeLanguageEvent event = new ChangeLanguageEvent("aaaaa");
Application.getInstance().fireEvent(event);

Это хозяйство должно работать в одном потоке. Что же касается нескольких потоков, тут сложнее.
PM MAIL   Вверх
PashaOvechkin
Дата 24.4.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

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



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

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

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


 




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


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

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