Главная » Java, Web » События мыши

0

В предыдущем разделе были рассмотрены основные понятия и методы создания графического пользовательского интерфейса. Этот раздел посвящен основам работы с событиями, которые возникают при использовании мыши. В качестве примеров мы создадим четыре апплета. Первый апплет выводит текст, как это делалось в предыдущем разделе, с той разницей, что при щелчке мышью меняются параметры выводимого текста (размер, стиль, цвет, местоположение). Второй апплет выводит прямоугольник в месте щелчка мышью. Третий апплет показывает в окне текущие координаты мыши, и наконец, четвертый апплет будет использоваться для рисования.

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

В языке Java события представлены в виде объектов. При возникновении того или иного события компьютер собирает связанные с этим событием данные и создает подходящий объект, в котором эти данные представлены. Объектам разных классов соответствуют различные типы событий. Так, при нажатии кнопки мыши создается объект типа MouseEvent. Этот объект содержит всю необходимую информацию, в частности, информацию о том, в каком компоненте произошло это событие, какая именно кнопка мыши была нажата. При нажатии клавиши клавиатуры компьютера возникает событие типа KeyEvent. После того, как объект события будет создан, параметры, собранные и хранимые в объекте, передаются процедурам обработки события. Создание функций обработки событий — задача разработчика приложения. При создании таких функций мы будем рассматривать события в целом, без детализации. Java предоставляет высокоуровневый механизм программирования при обработке событий. Нас не будет интересовать весь арсенал действий, выполняемых между физическим событием (нажатием кнопки) и началом выполнения той или иной функции обработки этого события, полезно это лишь понимать и всегда иметь в виду. Где-то скрытно он нас работает механизм, который во время выполнения программы все время ожидает наступления событий, и как только какое-либо событие наступит, будет вызвана соответствующая функция обработки этого события. Данный процесс организован в виде цикла ожидания событий или цикла событий. Всякая программа, работающая с графическим интерфейсом пользователя, имеет цикл событий. Нам нет необходимости создавать цикл событий, он уже создан для нас. В этом разделе мы будем работать с событиями с использованием языка Java.

Чтобы обработать событие, программа должна обнаружить наступившее событие, а для этого программа должна прослушивать события. Это осуществляется при помощи прослушивателя событий. Прослушиватель событий — это объект, который содержит методы обработки событий, наступления которых он ждет. Если объект служит для прослушивания событий типа MouseEvent, то этот объект должен содержать в себе примерно такой метод: public void mousePressed(MouseEvent evt) { … }

Этот метод определяет способ обработки наступившего события в соответствии с параметрами события. Метод использует в качестве параметра объект evt, который содержит всю доступную информацию о событии. Эта информация и используется для того, чтобы прореагировать на событие соответствующим образом.

Методы, которые используются в прослушивателе событий мыши, описаны в интерфейсе MouseListener. Чтобы иметь возможность воспользоваться этими методами, необходимо имплементировать данный интерфейс. Каждое событие в языке Java связано с тем или иным компонентом графического интерфейса. Прежде чем прослушиватель сможет реагировать на наступающие события, он должен быть зарегистрирован в соответствующем ему компоненте. Допустим, ЧТО МЫ создаем объект mListener типа MouseListener, который будет прослушивать события мыши в компоненте сотр, то вставка прослушивателя в этот компонент осуществляется с помощью такой строки кода: comp.addMouseListener(mListener);

Метод addMouseListener () — это метод класса Component, его можно использовать со всеми компонентами GUI. В наших примерах мы будем использовать прослушиватели в компоненте JPanel, который будет представлять собой "холст" для отображения всех прочих компонентов в апплетах jAppiet. Классы событий (например, класс MouseEvent), и интерфейсы прослушивателей (например, MouseListener) определены в пакете j ava. awt .event. При работе с событиями этот пакет следует вставить в файл с кодом: import java.awt.event.*;

Еще раз заострим наше внимание на основных моментах, которые необходимо соблюдать при работе с событиями.

1.     Вставить пакет java.awt.event в начало файла с кодом

impo rt java.awt.event.*;

2.     Объявить о том, что определенный класс является имплементацией интерфейса прослушивателя, например, интерфейса MouseListener.

3.     Создать методы обработки событий в соответствии с методами, описанными в интерфейсе прослушивателя.

4.     Зарегистрировать прослушиватель в компоненте, события в котором он будет прослушивать. Для этого используется метод объекта component, например, метод addMouseListener о для прослушивания событий мыши.

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

Источник: Будилов В. А. Интернет-программирование на Java. — СПб.: БХВ-Петербург, 2003. — 704 е.: ил.

По теме:

  • Комментарии