Как обрабатываются события

 

Когда возникает событие, управление получает метод handleEvent из класса Component. Класс Applet является дочерним по отношению к классу Component.

Прототип метода handleEvent мы привели ниже:

public boolean handleEvent(Event evt);

В качестве параметра методу handleEvent передается объект класса Event, который содержит всю информацию о событии. По содержимому полей класса Event вы можете определить координаты курсора мыши в момент, когда пользователь нажал клавишу, отличить одинарный щелчок от двойного и так далее.

Ниже мы привели список полей класса Event, которые вы можете проанализировать:

Поле

Описание

public Object argarg;

Произвольный аргумент события, значение которого зависит от типа события

public int clickCountclickCount;

Это поле имеет значение только для события с типом MOUSE_DOWNMOUSE_DOWN и содержит количество нажатий на клавишу мыши. Если пользователь сделал двойной щелчок мышью, в это поле будет записано значение 2

public Event evtevt;

Следующее событие в связанном списке

public int idid;

Тип события. Ниже мы перечислим возможные значения для этого поля

public int keykey;

Код нажатой клавиши (только для события, созданного при выполнении пользователем операции с клавиатурой)

public int modifiersmodifiers;

Состояние клавиш модификации <Alt>, <Ctrl>, <Shift>

public Object targettarget;

Компонент, в котором произошло событие

public long whenwhen;

Время, когда произошло событие

public int xx;

Координата по оси X

public int yy;

Координата по оси Y

Поле id (тип события) может содержать следующие значения:

Значение

Тип события

ACTION_EVENTACTION_EVENT

Пользователь хочет, чтобы произошло некоторое событие

GOT_FOCUSGOT_FOCUS

Компонент (в нашем случае окно аплета) получил фокус ввода. О фокусе ввода вы узнаете из раздела, посвященного работе с клавиатурой

KEY_ACTIONKEY_ACTION

Пользователь нажал клавишу типа "Action"

KEY_ACTION_RELEASEKEY _ACTION_RELEASE

Пользователь отпустил клавишу типа "Action"

KEY_PRESSKEY_PRESS

Пользователь нажал обычную клавишу

KEY_RELEASEKEY_RELEASE

Пользователь отпустил обычную клавишу

LIST_DESELECTLIST_DESELECT

Отмена выделения элемента в списке

LIST_SELECTLIST_SELECT

Выделение элемента в списке

LOAD_FILELOAD_FILE

Загрузка файла

LOST_FOCUSLOST_FOCUS

Компонент потерял фокус ввода

MOUSE_DOWNMOUSE_DOWN

Пользователь нажал клавишу мыши

MOUSE_DRAGMOUSE_DRAG

Пользователь нажал клавишу мыши и начал выполнять перемещение курсора мыши

MOUSE_ENTERMOUSE_ENTER

Курсор мыши вошел в область окна аплета

MOUSE_EXITMOUSE_EXIT

Курсор мыши покинул область окна аплета

MOUSE_MOVEMOUSE_MOVE

Пользователь начал выполнять перемещение курсора мыши, не нажимая клавишу мыши

MOUSE_UPMOUSE_UP

Пользователь отпустил клавишу мыши

SAVE_FILESAVE_FILE

Сохранение файла

SCROLL_ABSOLUTESCROLL_ABSOLUTE

Пользователь переместил движок полосы просмотра в новую позицию

SCROLL_LINE_DOWNSCROLL_LINE_DOWN

Пользователь выполнил над полосой просмотра операцию сдвига на одну строку вниз

SCROLL_LINE_UPSCROLL_LINE_UP

Пользователь выполнил над полосой просмотра операцию сдвига на одну строку вверх

SCROLL_PAGE_ DOWNSCROLL_PAGE_DOWN

Пользователь выполнил над полосой просмотра операцию сдвига на одну страницу вниз

SCROLL_PAGE_UPSCROLL_PAGE_UP

Пользователь выполнил над полосой просмотра операцию сдвига на одну страницувверх

WINDOW_DEICONIFYWINDOW _DEICONIFY

Пользователь запросил операцию восстановления нормального размера окна после его минимизации

WINDOW_DESTROYWINDOW_DESTROY

Пользователь собирается удалить окно

WINDOW_EXPOSEWINDOW_EXPOSE

Окно будет отображено

WINDOW_ICONIFYWINDOW_ICONIFY

Окно будет минимизировано

WINDOW_MOVEDWINDOW_MOVED

Окно будет перемещено

Если событие связано с клавиатурой (тип события KEY_ACTION или KEY_ACTION_RELEASE), в поле key может находиться одно из следующих значений:

Значение

Клавиша

DOWNDOWN

Клавиша перемещения курсора вниз

ENDEND

<End>

F1F1-F12

<F1>

F2

<F2>

F3

<F3>

F4

<F4>

F5

<F5>

F6

<F6>

F7

<F7>

F8

<F8>

F9

<F9>

F10

<F10>

F11

<F11>

F12

<F12>

HOMEHOME

<Home>

LEFTLEFT

Клавиша перемещения курсора влево

PGDNPGDN

<Page Down>

PGUPPGUP

<Page Up>

RIGHTRIGHT

Клавиша перемещения курсора вправо

UPUP

Клавиша перемещения курсора вниз

Могут быть указаны следующие маски для поля модификаторов modifiers:

Значение маски

Описание

ALT_MASKALT_MASK

Была нажата клавиша <Alt>

META_MASKMETA_MASK

Была нажата мета-клавиша (клавиша для ввода диактрических символов)

CTRL_MASKCTRL_MASK

Была нажата клавиша <Ctrl>

SHIFT_MASKSHIFT_MASK

Была нажата клавиша <Shift>

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



[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]