Вы находитесь на странице: 1из 5

АПРОБАЦИЯ

Балаковский инженерно-технологический институт — филиал


федерального государственного автономного образовательного учреждения
высшего профессионального образования
«Национальный исследовательский ядерный университет «МИФИ»

ОБРАБОТКА ПОЛЬЗОВАТЕЛЬСКИХ СОБЫТИЙ НА ЯЗЫКЕ JAVA

Методические указания к выполнению практических работ по дисциплине


«Объектно-ориентированное программирование»
для студентов всех форм обучения по направлению 09.03.02

Одобрено
редакционно-издательским
советом
Балаковского инженерно-
технологического института

Балаково 2015
Цель работы: знакомство с событиями воздействия на компонент
манипуляциями мышью, вводом с клавиатуры, перемещением окна и
изменением его размеров.

Основные понятия
От апплетов Java было бы немного толку, если бы они не умели
обрабатывать информацию, поступающую от мыши и клавиатуры. К
счастью, такая обработка предусмотрена, и она выполняется достаточно
просто.
Когда пользователь выполняет операции с мышью или клавиатурой в
окне апплета, возникают события, которые передаются соответствующим
методам класса Applet. Переопределяя эти методы, вы можете организовать
обработку событий, возникающих от мыши или клавиатуры.
Если вы создавали приложения для операционной системы Microsoft
Windows, здесь для вас нет ничего нового - вспомните, как вы обрабатывали
сообщение WM_LBUTTONDOWN или WM_CHAR. Когда пользователь
выполнял действие с мышью или клавиатурой в окне приложения, функция
этого окна получала соответствующее сообщение. Методы класса Applet,
обрабатывающие события от мыши и клавиатуры, являются аналогами
обработчиков указанных сообщений.
Заметим, что апплеты имеют дело только с левой клавишей мыши. В
текущей версии Java вы не можете никаким образом задействовать в апплете
правую или среднюю клавишу мыши.
Когда возникает событие, управление получает метод handleEvent из
класса Component. Класс Applet является дочерним по отношению к классу
Component.
Прототип метода handleEvent представлен ниже:
public boolean handleEvent(Event evt);
В качестве параметра методу handleEvent передается объект класса
Event, который содержит всю информацию о событии. По содержимому
полей класса Event вы можете определить координаты курсора мыши в
момент, когда пользователь нажал клавишу, отличить одинарный щелчок от
двойного и так далее.
Переопределив метод mouseDown, вы сможете отслеживать нажатия
клавиши мыши. Прототип этого метода приведен ниже:
public boolean mouseDown(Event evt, int x, int y);
Через параметр evt методу передается ссылка на объект Event, с
помощью которой метод может получить полную информацию о событии.
Анализируя содержимое параметров x и y, приложение может
определить координаты курсора на момент возникновения события.
Заметим, что для отслеживания двойного щелчка мыши не
предусмотрено никакого отдельного метода. Однако анализируя содержимое
поля clickCount переменной evt, вы можете определить кратность щелчка
мыши:
if(evt.clickCount > 1)
// Двойной щелчок
showStatus("Mouse Double Click");
else
// Одинарный щелчок
showStatus("Mouse Down");
При отпускании клавиши мыши управление получает метод mouseUp:
public boolean mouseUp(Event evt, int x, int y);
Анализируя параметры x и y, вы можете определить координаты точки,
в которой пользователь отпустил клавишу мыши.
Когда пользователь перемещает курсор мыши над окном апплета, в
процессе перемещения происходит вызов метода mouseMove:
public boolean mouseMove(Event evt, int x, int y);
Через переменные x и y передаются текущие координаты курсора
мыши.
Операция Drag and Drop выполняется следующим образом:
пользователь нажимает клавишу мыши и, не отпуская ее, начинает
перемещать курсор мыши. При этом происходит вызов метода mouseDrag:
public boolean mouseDrag(Event evt, int x, int y);
Через переменные x и y передаются текущие координаты курсора
мыши. Метод mouseDrag вызывается даже в том случае, если в процессе
перемещения курсор вышел за пределы окна апплета.
Метод mouseEnter получает управление, когда курсор мыши в процессе
перемещения по экрану попадает в область окна апплета:
public boolean mouseEnter(Event evt, int x, int y);
Вы можете использовать этот метод для активизации апплета, на
который указывает курсор мыши.
Метод mouseExit вызывается при покидании курсором окна апплета:
public boolean mouseExit(Event evt, int x, int y);
Если пользователь убрал курсор из окна апплета, активизированного
методом mouseEnter, то метод mouseExit может переключить апплет в
пассивное состояние.

Технология выполнения работы


1. Создать консольное java-приложение.
2. Рассмотреть основные элементы управления ходом программы в
Java: вывод в консоль, объявление переменных, условные операторы и
циклы.
3. Создать фреймовое приложение на Java.
4. Добавить элементы управления SWING: кнопка и текстовое поле.
5. Рассмотреть свойства добавленных элементов.
6. Ознакомиться с блоком прослушивания события нажатия на кнопку
клавиатуры.
7. Создать приложение, реализующее функции стандартного
калькулятора Windows.
Вопросы для самоконтроля
1. Опишите особенности языка и платформы Java.
2. Составьте классификацию программ по типу исполнения
(компилируемые, интерпретируемые, исполняемые на виртуальных
машинах).
3. Опишите принцип работы виртуальной машины Java.
4. Опишите принцип JIT-компиляции.
5. Приведите пример создания простейшей программы на Java,
опишите процесс её компиляции в байт-код и запуск.
6. Перечислите основные средства разработки Java-приложений и
интегрированные среды разработки.
7. Охарактеризуйте встроенные типы данных и способы задания
литералов различных типов.
8. Опишите приведение типов (явное и автоматическое).
9. Охарактеризуйте константы и переменные.
10. Охарактеризуйте события в Java.