Когда возникает событие, управление получает метод handleEvent из класса Component. Класс Applet является дочерним по отношению к классу Component.
Прототип метода handleEvent мы привели ниже:
public boolean handleEvent(Event evt);
В качестве параметра методу handleEvent передается объект класса Event, который содержит всю информацию о событии. По содержимому полей класса Event вы можете определить координаты курсора мыши в момент, когда пользователь нажал клавишу, отличить одинарный щелчок от двойного и так далее.
Ниже мы привели список полей класса Event, которые вы можете проанализировать:
| Поле | Описание | ||
| public Object arg; | Произвольный аргумент события, значение которого зависит от типа события | ||
| public int clickCount; | Это поле имеет значение только для события с типом MOUSE_DOWN и содержит количество нажатий на клавишу мыши. Если пользователь сделал двойной щелчок мышью, в это поле будет записано значение 2 | ||
| public Event evt; | Следующее событие в связанном списке | ||
| public int id; | Тип события. Ниже мы перечислим возможные значения для этого поля | ||
| public int key; | Код нажатой клавиши (только для события, созданного при выполнении пользователем операции с клавиатурой) | ||
| public int modifiers; | Состояние клавиш модификации <Alt>, <Ctrl>, <Shift> | ||
| public Object target; | Компонент, в котором произошло событие | ||
| public long when; | Время, когда произошло событие | ||
| public int x; | Координата по оси X | ||
| public int y; | Координата по оси Y |
Поле id (тип события) может содержать следующие значения:
| Значение | Тип события | ||
| ACTION_EVENT | Пользователь хочет, чтобы произошло некоторое событие | ||
| GOT_FOCUS | Компонент (в нашем случае окно аплета) получил фокус ввода. О фокусе ввода вы узнаете из раздела, посвященного работе с клавиатурой | ||
| KEY_ACTION | Пользователь нажал клавишу типа “Action” | ||
| KEY_ACTION_RELEASE | Пользователь отпустил клавишу типа “Action” | ||
| KEY_PRESS | Пользователь нажал обычную клавишу | ||
| KEY_RELEASE | Пользователь отпустил обычную клавишу | ||
| LIST_DESELECT | Отмена выделения элемента в списке | ||
| LIST_SELECT | Выделение элемента в списке | ||
| LOAD_FILE | Загрузка файла | ||
| LOST_FOCUS | Компонент потерял фокус ввода | ||
| MOUSE_DOWN | Пользователь нажал клавишу мыши | ||
| MOUSE_DRAG | Пользователь нажал клавишу мыши и начал выполнять перемещение курсора мыши | ||
| MOUSE_ENTER | Курсор мыши вошел в область окна аплета | ||
| MOUSE_EXIT | Курсор мыши покинул область окна аплета | ||
| MOUSE_MOVE | Пользователь начал выполнять перемещение курсора мыши, не нажимая клавишу мыши | ||
| MOUSE_UP | Пользователь отпустил клавишу мыши | ||
| SAVE_FILE | Сохранение файла | ||
| SCROLL_ABSOLUTE | Пользователь переместил движок полосы просмотра в новую позицию | ||
| SCROLL_LINE_DOWN | Пользователь выполнил над полосой просмотра операцию сдвига на одну строку вниз | ||
| SCROLL_LINE_UP | Пользователь выполнил над полосой просмотра операцию сдвига на одну строку вверх | ||
| SCROLL_PAGE_DOWN | Пользователь выполнил над полосой просмотра операцию сдвига на одну страницу вниз | ||
| SCROLL_PAGE_UP | Пользователь выполнил над полосой просмотра операцию сдвига на одну страницувверх | ||
| WINDOW_DEICONIFY | Пользователь запросил операцию восстановления нормального размера окна после его минимизации | ||
| WINDOW_DESTROY | Пользователь собирается удалить окно | ||
| WINDOW_EXPOSE | Окно будет отображено | ||
| WINDOW_ICONIFY | Окно будет минимизировано | ||
| WINDOW_MOVED | Окно будет перемещено |
|
Значение |
Клавиша |
|
DOWN |
Клавиша перемещения курсора вниз |
|
END |
<End> |
|
F1 |
<F1> |
|
F2 |
<F2> |
|
F3 |
<F3> |
|
F4 |
<F4> |
|
F5 |
<F5> |
|
F6 |
<F6> |
|
F7 |
<F7> |
|
F8 |
<F8> |
|
F9 |
<F9> |
|
F10 |
<F10> |
|
F11 |
<F11> |
|
F12 |
<F12> |
|
HOME |
<Home> |
|
LEFT |
Клавиша перемещения курсора влево |
|
PGDN |
<Page Down> |
|
PGUP |
<Page Up> |
|
RIGHT |
Клавиша перемещения курсора вправо |
|
UP |
Клавиша перемещения курсора вниз |
|
Значение маски |
Описание |
|
ALT_MASK |
Была нажата клавиша <Alt> |
|
META_MASK |
Была нажата мета-клавиша (клавиша для ввода диактрических символов) |
|
CTRL_MASK |
Была нажата клавиша <Ctrl> |
|
SHIFT_MASK |
Была нажата клавиша <Shift> |