Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Хук событий


Автор: Zandr 15.3.2005, 13:06
Очень похожа на недавнюю, но более общая тема.
Как сделать так, чтобы контейнер (свинговый) мог перехватывать события (или копии событий) от дочерних компонентов? Причем так чтобы с дочерними компонентами ничего не приходилось делать (в смысле не вешать на них дополнительных листенеров).

Автор: Domestic Cat 15.3.2005, 19:37
Если тебе нужно просто смотреть наличие определенных событий, то есть http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/AWTEventListener.html, который перехватывает вообще все события.

Автор: Zandr 16.3.2005, 08:11
Брал Toolkit у контейнера, давал ему AWTListener'а. Этот листенер ловит system-wide события, а не только свои и своих детей (ну в смысле компонентов, которые в нем сидят), а мне нада только последние. Лишний раз проверять на родительство тоже неохота. вот. вопрос открыт. хотя наверное уже закрыт smile

Автор: djGri 16.3.2005, 17:07
Pattern Observer

Автор: Domestic Cat 16.3.2005, 18:53
Цитата
Pattern Observer


Как раз этот паттерн противоречит поставленной задачe - ничго нe вешать на дочрние компоненты.

Автор: djGri 16.3.2005, 20:19
Цитата(Domestic @ 16.3.2005, 17:53)
Цитата
Pattern Observer

Как раз этот паттерн противоречит поставленной задачe - ничго нe вешать на дочрние компоненты.

Посмотри на это так : Папаша- обозреватель, сынок-наблюдаемый

Автор: Domestic Cat 16.3.2005, 20:43
По условию : ничего вешать на компоненты нельзя. А паттерн предполагает установку коллбак методов.

Автор: Zandr 17.3.2005, 07:56
а может это,... тему в GUI (блин, только сегодня заметил раздел, сорри smile ) или в "маленький тест"? smile
Ладно, раз это явно не реализовано (или реализовано так, что в глаза не бросается), значит редко юзается. Я тут посмотрел повнимательнее - зачем мне это нужно, оказалось, что незачем - можно по другому и покрасивее. Пасиба smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)