Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ МИР.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
546.82 Кб
Скачать

34 Обработка событий апплета, методы апплета.

Обработка событий апплета (Модель обработки событий Java 1.0)

Класс Applet является потомком класса Component. Каждый класс, наследуемый от класса Component может обрабатывать события, заместив определенные методы, вызываемые используемой по умолчанию реализацией метода handleEvents класса Component. Этот метод вызывается с объектом класса Event, описывающего все возможные типы событий. Наиболее часто используемые события, например, те, что связаны с мышью и клавиатурой, диспетчеризируются другим методам класса Component.

Все события, связанные с мышью, вызываются с копией оригинального события, а также с координатами х и у, в которых это событие произошло.

mouseEnter вызывается в том случае, когда мышь входит в компонент.

mouseExit вызывается при выходе мыши из области компонента.

mouseMove вызывается при перемещении мыши в области компонента.

mouseDown вызывается при нажатии кнопки мыши.

mouseDrag вызывается при перемещении мыши с нажатой кнопкой.

mouseUp вызывается при отпускании кнопки мыши.

Аналогично, keyDown и keyUp вызываются при каждом нажатии и отпускании клавиши. Событие передается методу вместе с кодом нажатой клавиши. В классе Event определены десятки констант, позволяющих использовать символические имена, например, PGUP и HOME.

Наконец, для работы со специальными событиями, например, с обратными вызовами (callback) из компонентов Button, Scrollbar и Menu, необходимоо замещать метод action. Этот метод вызывается с исходным событием и со вторым параметром, который представляет собой компонент пользовательского интерфейса, создавший это событие.

События, генерируемые мышью

Обработчику событий mouseMove передаются три параметра: непосредственно событие, которое является классом, содержащим всю информацию, нужную для уникальной идентификации события, и две координаты - в данном случае новое расположение мыши внутри апплета. В табл. 5-2 приведены предопределенные обработчики событий.

Обработчик событий

Описание

mouseDown (Event, int, int)

Нажата кнопка мыши. Целочисленные параметры указывают расположение мыши.

mouseUp (Event, int, int)

Кнопка мыши отпущена.

mouseMove (Event, int, int)

Перемещение мыши.

mouseDrag (Event, int, int)

Перемещение мыши с нажатой кнопкой.

mouseEnter (Event, int, int)

Перемещение мыши на окно апплета.

mouseExit (Event, int, int)

Мышь покинула окно апплета.

keyDown (Event, int)

Нажата клавиша перемещения курсора или функциональная клавиша. Целочисленный параметр указывает эту клавишу (см. табл. 5-3).

keyUp (Event, int)

Клавиша перемещения курсора или функциональная клавиша отпущена.

Замещая некоторые из этих предопределенных обработчиков событий, мы можем написать апплет отображения положения курсора показанный ниже. Этот апплет рисует изображение курсора, следуя за мышью в окне апплета. Такое поведение может быть выключено и снова включено нажатием кнопки мыши.

Проверяя событие нажатия кнопки мыши, вы можете определять различную обработку в зависимости от того, делает ли пользователь одиночный щелчок или двойное нажатие. Класс Event определяет переменную clickCount, которая установлена в 1 для одиночных нажатий и 2 для двойных. Фактически ей будет присвоено число щелчков, которое пользователь сумеет сделать прежде, чем событие будет сгенерировано. На практике полезны только одиночные и двойные щелчки. Следующий фрагмент кода иллюстрирует использование этой переменной:

public boolean mouseDown ( Event evt, int x, int y){ if (evt.clickCount==l) (

// одиночное нажатие

} elseif (evt.clickCount==2) {

// двойной щелчок

} else {

// слишком быстрые пальчики

}

return true;

}

Этот метод вызывается при нажатии кнопки мыши. Если кнопка нажата один раз, апплет обрабатывает случай с одиночным щелчком; если кнопка нажата дважды, апплет обрабатывает двойное нажатие.