![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
Нужна помощь! Скажите, возможно самому написать т.сказать архитектуру Listener-Event, которую используют например для написания GUI? Более конкретоно о задаче: есть куча средов, и нужно что бы они "слушали" некоторое событие, например StopEvent для данного среда и затем происходило действие , например StopAction(). И в свою очередь некая таблица должна слушать некоторое событие, например ErrorEvent посланное от определенного среда (сообщение о какой либо ошибке) и обрабатывает его.... В целом картина мне понятна, не я не знаю какие у джавы есть для этого инструменты? Ваши предложения? |
|||
|
||||
| shimopus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: нет Всего: 1 |
Ну стандартная реализация шаблона "Observer" в jdk находится в классах Observer и Observable Для лучшего понимания как это все использовать советую прочитать так же про паттерн проектирования "MVC" (Model-Viewer-Controller).
Это сообщение отредактировал(а) shimopus - 3.9.2007, 23:30 |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
Как ни странно, лисенеры и евенты Посмотри вот эту статейку, я пока не могу найти полноценный мануал: http://www.javaworld.com/javaqa/2000-08/01...804-events.html Добавлено через 4 минуты и 28 секунд Вот еще одна: http://www.exampledepot.com/egs/java.util/CustEvent.html А вообще, этот вопрос у нас рассматривался в контексте JavaИeans. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: нет Всего: 62 |
||||
|
||||
| lando1 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
вообще, можно скачать исходники swing и посмотреть как там сделано.
нужен класс - событие, который наследуется от java.util.EventObject:
и интерфейс - слушатель:
далее в класс, который хотим слушать добавляем примерно след. код:
и потом в методах этого класса можно вызывать fire*** - и соответственно будут рассылаться уведомления |
||||||
|
|||||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Именование классов и методов также имеет немаловажное значение. Я не уверен, что такой метод
будет корректно отражён в автоматическом beaninfo. -------------------- ![]() ![]() |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Лисенер - это обьект, у которого есть void метод. Событие - это параметр (обычно тоже обьект), который в этот метод передается. Мы вызвали метод = лисенер услышал событие. В GUI только эти события в очередь ставят и отдельный поток их обрабатывает. А лисенеры как правило регистрируют в runtime. Очередь событий и динамическая регистрация лисенеров наверное и есть суть такого подхода. А если это развить, то получится JMS - сервис сообщений. Это сообщение отредактировал(а) COVD - 11.9.2007, 15:45 |
|||
|
||||
| sol78 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: нет Всего: 0 |
обьясни плиз что именно делает
protected void fireProjectAdded(Object source) |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 7 Всего: 151 |
По всей видимости, оповещает все лисенеры о том, что произошло событие ProjectAdded. Или, другими словами, запускает метод projectAdded у каждого зарегистрированного лисенера. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |