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

События, генерируемые клавиатурой

Методы keyUp и keyDown работают таким же образом, как и обработчики событий мыши, за исключением того, что им передается идентификатор клавиши, а не координаты события. Идентификатор клавиши - это целое число, которое соответствует нажатой клавише. Обычные клавиши пишущей машинки имеют значения, соответствующие их ASCII-кодам. Кроме того, Java поддерживает множество специальных клавиш, приведенных в табл. 5-3. Эти специальные клавиши фактически определены как статические целые переменные (константы) для класса Event. В главе 6, "Интерфейс прикладного программирования", будет показано, как преобразовать целые числа в строки, если вы захотите отображать ввод с клавиатуры. Следующий фрагмент кода проверяет нажатие клавиш управления курсором:

Public boolean keyDown(Event evt, lnt key) {

switch(key) {

case Event.UP:

case Event.DOWN:

case Event.LEFT:

case Event.RIGHT:

default:

}

return true;

}

    Метод keyDown вызывается при нажатии клавиши. Оператор switch переключается между четырьмя стрелками и всеми другими клавишами и вызывает соответствующий участок кода для рассматриваемой клавиши.

35 Методы апплетов в Java.

Java позволяет апплетам загружать данные из каталога, содержащего файл html запуска аплета и из каталога, содержащего файл класса аплета.

Эти каталоги возвращаются как объекты класса URL (в пакете Java.net.*) методами:

getDocumentBase ( )- вернет URL, в котором находится файл html запуска аплета.

getCooleBase ( )- вернет URL, в котором файл класса аплета.

Одним из + языка Java считают возможность использования для перемещения по Web активных изображений.

Чтобы аплет мог передать управление др. URL используют метод:

ShoveDocuments ( ), который определен в интерфейсе Context.

Данный интерфейс позволяет получить информацию из среды выполнения аплета.

Контекст, используемый в наст. время, аплета можно получить при помощи метода:

getAppletContext ( ) - который определен в классе Applet.

После помещения контекста аплета можно вызвать другой документ, при помощи:

ShowDocument ( ) – он не возвращает никакого значения и не генерирует исключительных ситуаций при неисправной работе.

ShowDocument (URL) – вызывает документ по заданному URL.

ShowDocument (URL, позиция) – вызывает документ с заданным URL в заданную позицию окна.

Позиция:

1. self – вывод происходит в окно браузера.

2. parent – родительское окно.

top – в самое верхнее окно.

blank – в новое окно браузера.

имя окна – в заданное именем окно.

36 Модели обработки событий Java 1.0.

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

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

Метод имеет вид:

public boolean handleEvent(Event evt){

if (. . .) {

// тело метода

return true;

}

else super.handleEvent(evt);

}

Для обработки событий, сгенерированных управляющими элементами, программа должна перекрывать обработчик события, представленный методом action().

Метод action() определен в классе Component. При перекрытии метода action() он должен возвратить значение true в случае успешной обработки события и false в противном случае. Схема перекрытого метода имеет вид:

public boolean action (Event evtObj, Object arg){

if (. . .) {

// обработка события

return true;

}

return false;

}

Параметр evtObj описывает событие, а параметр arg является ссылкой на объект, связанный с этим событием.

При обработке событий управляющих элементов можно получить доступ ко всем переменным класса Event. Это позволяет облегчить определение способа обработки каждого события. Наиболее важными переменными класса Event являются target, где обычно содержится ссылка на объект, сгенерировавший событие, и id, содержащая константу, идентифицирующую данное событие.

Рассмотрим фрагмент программы, включающий в себя создание управляющих элементов и обработку некоторого события:

. . .

Button one = new Button("One") ;

Button two = new Button("Two") ;

// после создания кнопок их необходимо добавить к окну

add(one); add(two);

. . .

//Распознавание кнопок по их меткам.

public boolean action (Event evtObj, Object arg){

if (evtObj.target instanceof Button){

if (arg.equals("One"))

msg="Вы нажали кнопку One";

else if (arg.equals("Two"))

msg="Вы нажали кнопку Two";

return true;

}

return false;

}

Внешний оператор if в методе action проверяет, является ли кнопкой объект, сгенерировавший событие с помощью оператора instanceof. Это необходимо сделать так как метод action() будет получать все события сгенерированные управляющими элементами. Кроме того, зная, что в переменной target находится ссылка на кнопку, то распознать кнопку можно используя обычный оператор сравнения

evt.target == one