![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Всем привет.
Я в JAVA новичок, так что извиняюсь заранее, если буду тупить. Для меня непонятна логическая структура событий и их обработка. Допустим есть класс, который, как я понял, реализует как источник (он сам им является), так и блок прослушивания. Он же реализует интерфейсы в которых определены методы для обработки событий. 1. Что означает аргумент MouseEvent me в интерфейсных методах типа public void MouseClicked 2. Чтоза метод или объект addMouseListener(this); который может регистрировать классы как блоки прослушивания.? То что он регистрирует класс в котором он находится мне понятно. 3. Понятие источник - это класс который определяет интерфейсные методы типа public void MouseClicked ?
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Это объект который содержит дополнительную информацию о событии, которую надо передать в метод обработчик. В частности где произошло событие, координаты и т.п. Тогда что непонятно? Он больше ничего другого не делает, кроме как регистрирует обработчики событий.
Нет. Это объект в котором произошло данное событие, кнопка, текстовое поле и т.д. В твоем случае это объект типа MouseEvents. P.S. Ты или просто не правильно употребляешь термины, или действительно путаешь класс и объект? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
GIK |
|
||||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
Понял.
Но в корне все равно стоит класс который определен в аплете? Т.е если я создам другой класс к примеру (неопределенный в тегах applet), который реализует нужные интерфейсы и определяет методы, то он не будет реализовывать (обрабатывать) события, которые произойдет в окне аплета? -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Не понимаю, в каком корне? Не совсем. Есть класс источник событий, есть класс заинтересованный в этом событии (слушатель события). Пример:
В данном случае источником события будет объект eventDemo (строка 56), а слушателем события объект listener (строка 49). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: нет Всего: 14 |
После упорного перебора книг по JAVA и событиям я понял следуещее:
Источник события - это обычно сам аплет, грубо говоря, он же должен реализовать регистрацию блоков прослушивания. Когда происходит событие, вызавается соответствующий класс события который получает нужную информацию, допустим ActionEvent(Object src, int type, String cmd). Незнаю как эта информация в дальнейшем используется, но после определенного события этот класс посылается блоку прослушивания в качестве параметра соответствующему методу события, например
а точнее посылается ссылка на объект-событие. С помощью нее, обращаяс к объекту события через методы, можно получить нужную информацию. То что блок события может находится не в самом аплете это понятно, но источником всегда должен быть сам аплет. Можно ли вызвать класс-событие из кокого нибуть объекта, т.е. не после генерации события? Это сообщение отредактировал(а) GIK - 31.1.2006, 14:14 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 3 Всего: 151 |
Да, можно. Точный метод не помню - что-то вроде fireEvent(). -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Иногда да, иногда нет. Зависит от реализации. Например события нажатия на JButton можно вызвать с помощью метода doClick() (там будут оповещены все соответсвующие листенеры и отрисована соответсвующая картинка). А вот эмулировать события от мыши нельзя, потому что все соответсвующие fire методы protected. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 1 Всего: 43 |
Эти термины - событие, лисенер, источник события - просто обьектно-ориентированное толкование обычных вещей. Если в каком-то месте программы у вас происходит вызов метода и туда передается параметр, то можно сказать что этот метод - лисенер, параметр - событие, а тот участок кода, откуда осуществляется вызов - источник события.
Но удобнее будет, если вызываемый метод принадлежит другому обьекту, на который источник события держит ссылку. И определение этой ссылки есть регистрация лисенера (обьекта). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Апплеты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |