Начиная с Java 1.1, изменен (хотя старый и поддерживается) способ обработки событий. Новая модель названа моделью делегирования событий. В соответствии с ней в обработке события участвуют 2 объекта: источник (source) и блок прослушивания (listener - интерфейс для перехвата конкретного вида события от конкретного компонента). Источник – это объект, генерирующий событие ( в случае, когда каким-то образом изменяется его внутреннее состояние), а блок (или несколько блоков) прослушивания – объект, получающий уведомление, о возникновении события, на которое он зарегистрирован одним или несколькими источниками, путем вызова одного из его методов (методов блока прослушивания) для приема и обработки этих уведомлений. Методы, принимающие и обрабатывающие событие определены в наборе интерфейсов, находящихся в пакете java.awt.event. Графические события это: нажатие или перемещение кнопки, ввод символа с клавиатуры, выбор в списке, щелчок мыши и т.д. В качестве источников выступают компоненты, способные генерировать события: управляющие элементы и контейнеры, а также апплет (апплеты – это программы, управляемые событиями), в который включены эти элементы. События описываются подклассами класса EventObject(Objectscr)-суперкласс всех событий, где scr -объект, генерирующий это событие. Класс EventObjectразмещается в пакете java.util. Класс AWTEvent, определенный в пакете java.awt – является суперклассом всех AWT-событий, которые обрабатываются моделью делегирования событий.
В роли блока прослушивания может выступать любой класс, реализующий хотя бы один из подклассов интерфейса EventListener, определяемых в пакете java.awt.event.
Для прослушивания событий от мыши реализованы 2 класса:
Интерфейс MouseMotionListener перехватывает события, связанные с перемещением мыши, например, с использованием методов mouseDragged() (перемещение курсора с нажатой левой клавишей (перетаскивание)) и метода mouseMoved() – простое перемещение курсора мыши.
java.util.Eventlistener
-java.awt.event.ComponentListener
-java.awt.event.ConteinerListener
-java.awt.event.FocusListener
-java.awt.event.KeyListener
-java.awt.event.MouseListener
-java.awt.event.MouseMotionListener
-java.awt.event.WindowListener
-java.awt.event.FctionListener
В интерфейсе MouseListener описаны такие методы как:
mouseClicked(); mousePressed(); mouseReleased();
mouseEntered();mouseExited();
В новой модели роль блока прослушивания может выполнять дополнительный класс, введенный, например, в состав апплета, реализующий необходимые интерфейсы, следящие за актуальными событиями. В этом классе реализуются методы интерфейсов прослушивания и в случае появления события вызывают соответствующий метод класса реализующего основные функции апплета. Для этого класс прослушивания регистрируется в основном классе в качестве блока прослушивания при помощи метода set<категория_событий>Listener или add<атегория_событий>Listener класса, выступающего в роли источника событий, т.е. в основном классе записать:
и затем, например, в методе init() зарегистрировать данный объект как источник событий
public void init ()
{ my_control = new My_Listener (this);
this.addMouseListener (my_control);
this.addMouseMotionListener (my_control);
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.