![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| kbolyand |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 18.10.2006 Репутация: нет Всего: нет |
Привет! Есть 2 класса, которые я пишу. Я хочу сделать один класс, который будет выполнять какую-то либо функциональность, а другой будет его слушать, т.е. являться Listener'ом первого класса.
Имея некий опыт, я понимаю, что второй класс должен имплементировать некий интерфейс типа FirstClassListener и выполнять определенные действия при получении каких-либо событий от первого класса. Значит, первый класс должен соответсвенно генерировать осмысленные события и как то посылать их второму классу или выкидывать их в какую-нить среду. Поправьте меня, если я не прав. Но как это сделать или какая правильная логика работа Listener'ов на Java. Очень хотелось бы пример! |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 1 Всего: 9 |
посмотри в сторону Event
-------------------- SCJP 6 |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
1) Нужно определить класс события. (например MyEvent)
2) Нужно определить интерфейс слушателя. (например MyListener) В этом интерфейсе ты объявляешь методы принимающие в качестве параметра объект класса MyEvent.
3) В классе, который является генератором событий, нужно создать методы для добавления и удаления слушателей. (addMyListener(MyListener listener) и removeMyListener(MyListener listener)) и реализовать механизм их хранения. Допустим на основе ArrayList<MyListener>. 4) Еще полезно определение в классе генераторе события метода, который оповестит всех слушателей о наступившем событии. Т.е. пробежится по списку слушателей и вызовет у всех метод myActionPerformed с соответствующим MyEvent объектом. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Обычно такой метод называется fireMy() (от листенера убираешь "листенер"). В принципе, в минимуме класс события не требуется. Вполне достаточно бывает просто листенера. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |