Классы событий

В основе механизма обработки событий находятся классы, которые представляют события. Начнем наше изучение обработки событий с обзора классов событий. Они обеспечивают непротиворечивые и удобные в использовании средства инкапсуляции событий.

В корне иерархии классов событий Java находится класс EventObject, который размещен в пакете java.util. Это — суперкласс для всех событий. Один из его конструкторов:

EventObject(Object src)

где src — объект, который генерирует это событие.

EventObject содержит два метода:getSource() и toString(). Метод getSource() возвращает источник события. Его общая форма:

Object getSource()

Метод toString() возвращает строчный эквивалент события.

Класс AWTEvent, определенный в пакете java.awt, является подклассом класса EventObject. Это суперкласс (прямо или косвенно) всех AWT-событий, используемых моделью делегирования событий. Для определения типа события можно использовать его метод getID(). Сигнатура этого метода:

int getID()

Итак:

EventObject — суперкласс всех событий.

AWTEvent — суперкласс всех AWT-событий, которые обрабатываются моделью делегирования событий.

Пакет java.awt.event определяет несколько типов событий, которые генерируются различными элементами интерфейса пользователя. Табл. см. ниже перечисляет наиболее важные из этих классов событий и кратко описывает, когда они генерируются.

Класс событий Описание
ActionEvent Генерируется, когда нажата кнопка, дважды щелкнут элемент списка или выбран пункт меню
AdjustmentEvent Генерируется при манипуляциях с полосой прокрутки
ComponentEvent Генерируется, когда компонент скрыт, перемещен, изменен в размере или становится видимым
ContainerEvent Генерируется, когда компонент добавляется или удаляется из контейнера
FocusEvent Генерируется, когда компонент получает или теряет фокус
InputEvent Абстрактный суперкласс для всех классов событий ввода компонентов
ItemEvent Генерируется, когда: • помечен флажок или элемент списка • сделан выбор элемента в списке выбора • выбран/отменен элемент меню с меткой
KeyEvent Генерируется, когда получен ввод от клавиатуры
MouseEvent Генерируется, когда объект перетащен мышью (dragged) или перемещен (moved), произошел щелчок (clicked), нажата (pressed) или отпущена (released) кнопка мыши; также генерируется, когда указатель мыши входит или выходит в/за границы компонента
TextEvent Генерируется, когда изменено значение текстовой области или текстового поля
WindowEvent Генерируется, когда окно активизировано, закрыто, дезактивировано, развернуто или свернуто в значок, открыто или организован выход (exit) из него

Класс MouseEvent

Существует семь типов mouse-событий. Класс MouseEvent определяет целочисленные константы, которые могут использоваться для их идентификации:

mouse_clicked. Пользователь щелкнул кнопкой мыши.

mouse_dragged. Пользователь перетащил мышь.

mouse_entered. Указатель мыши веден в компонент.

mouse_exited. Указатель мыши выведен из компонента.

mouse_moved. Мышь передвинута.

mouse_pressed. Кнопка мыши нажата.

mouse_released. Кнопка мыши освобождена.

MouseEvent — это подкласс InputEvent. Он имеет конструктор:

MouseEvent(Component src, int type, long when, int modifiers, int x, int y, int clicks, boolean triggersPopup)

где src— ссылка на компонент, который генерировал это событие; type тип события; when — параметр, передающий конструктору системное время, когда клавиша была нажата; modifiers — параметр, указывающий, какие модификаторы были нажаты, когда произошло mouse-событие. Координаты мыши передаются параметрами х и у Счет щелчков передается в clicks. Флажок triggersPopup указывает, приводит ли это событие к появлению раскрывающегося меню на данной платформе.

Обычно используемые методы в этом классе — getX() и getY(). Они возвращают (х, у)-координаты мыши, когда событие произошло. Их форматы:

int getX()

int getY()

Альтернативно, чтобы получить координаты мыши, можно использовать метод getPoint() с форматом:

Point getPoint()

Он возвращает объект Point, который содержит (х, у)-координаты в его целых членах х и у. Метод transiatePoint() изменяет положение события. Его формат:

void translatePoint(int х, int у)

Здесь аргументы х и у добавляются к координатам события.

Метод getclickCount() получает число щелчков мыши для этого события. Его сигнатура:

int getclickCount()

МетодisPopupTrigger() проверяет, приводит ли событие к появлению всплывающего меню на данной платформе. Его формат:

boolean isPopupTrigger()

Класс WindowEvent

Существует семь типов window-событий. Чтобы идентифицировать их, класс WindowEvent определяет следующие целые константы:

window_actwated. Окно активизировано.

window_closed. Окно закрыто.

window_closing. Пользователь потребовал, чтобы окно было закрыто.

window_deactwated. Окно деактивизировано.

window_deiconified. Окно развернуто из пиктограммы.

window_iconified. Окно свернуто в пиктограмму.

window_opened. Окно открыто.

WindowEvent — подкласс ComponentEvent и имеет следующий конструктор:

WindowEvent(Window src, int type)

где src— ссылка на компонент, который генерировал это событие; type указывает тип события.

В этом классе чаще всего используется метод getWindow(). Он возвращает window-объект, который сгенерировал событие. Его общая форма:

Window getWindow()


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: