| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > About Listeners |
| Автор: kbolyand 20.5.2007, 11:33 |
| Привет! Есть 2 класса, которые я пишу. Я хочу сделать один класс, который будет выполнять какую-то либо функциональность, а другой будет его слушать, т.е. являться Listener'ом первого класса. Имея некий опыт, я понимаю, что второй класс должен имплементировать некий интерфейс типа FirstClassListener и выполнять определенные действия при получении каких-либо событий от первого класса. Значит, первый класс должен соответсвенно генерировать осмысленные события и как то посылать их второму классу или выкидывать их в какую-нить среду. Поправьте меня, если я не прав. Но как это сделать или какая правильная логика работа Listener'ов на Java. Очень хотелось бы пример! |
| Автор: goodday1941 20.5.2007, 12:32 |
| посмотри в сторону Event |
| Автор: powerOn 20.5.2007, 14:12 | ||
| 1) Нужно определить класс события. (например MyEvent) 2) Нужно определить интерфейс слушателя. (например MyListener) В этом интерфейсе ты объявляешь методы принимающие в качестве параметра объект класса MyEvent.
3) В классе, который является генератором событий, нужно создать методы для добавления и удаления слушателей. (addMyListener(MyListener listener) и removeMyListener(MyListener listener)) и реализовать механизм их хранения. Допустим на основе ArrayList<MyListener>. 4) Еще полезно определение в классе генераторе события метода, который оповестит всех слушателей о наступившем событии. Т.е. пробежится по списку слушателей и вызовет у всех метод myActionPerformed с соответствующим MyEvent объектом. |
| Автор: Maksym 21.5.2007, 15:35 |
| kbolyand Нужно использовать паттерн http://en.wikipedia.org/wiki/Observer_pattern. Пример реализации by LSD в терминах event-ов и listener-ов http://forum.vingrad.ru/index.php?showtopic=144117&view=findpost&p=1084179. |