| Оглавление
События |
Когда возникает событие, управление получает метод 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 и обрабатывать события самостоятельно, однако есть более простой путь. Обработчик этого метода, который используется по умолчанию, вызывает несколько методов, которые более удобны в использовании, в частности, при обработке событий от мыши или клавиатуры.