| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
 

Оглавление

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



Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content
Используются технологии uCoz

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz