Java Примеры программирования Информатика начало

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

Назад Вперед

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

Назад Вперед
Машиностроительное черчение, инженерная графика, начертательная геометрия. Выполнение контрольной