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