Методы обработки событий представлены в таблице. Данные методы могут перекрываться апплетом. В этом случае при обработке события метод должен возвращать true. Если событие не обрабатывается, возвращается false. При перекрытии обработчика события необходимо обработать событие и вернуть значение true. Двумя наиболее важными методами обработки событий мыши являются mouseDown() и mouseUp(). Обработчик mouseDown() вызывается при каждом нажатии кнопки мыши, а mouseUp() - когда кнопка мыши отпускается. Java не различает кнопки мыши.
Таблица. Методы класса Event
Метод | Описание |
boolean mouseDown(Event событие, int x, int y) | Вызывается при нажатии кнопки мыши. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. |
boolean mouseDrag(Event событие, int x, int y) | Вызывается в случае перемещения мыши при нажатой кнопке. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. Событие передвижения мыши генерируется до тех пор, пока мышь перемещается в окне и ее кнопка нажата. |
boolean mouseEnter(Event событие, int x, int y) | Вызывается при помещении указателя мыши на окно. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. |
boolean mouseExit(Event событие, int x, int y) | Вызывается при помещении указателя мыши из окна. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. |
boolean mouseMove(Event событие, int x, int y) | Вызывается при перемещении мыши. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. Cобытие передвижения мыши генерируется до тех пор, пока мышь перемещается в окне и ее кнопка не нажата. |
boolean mouseUp(Event событие, int x, int y) | Генерируется, когдакнопка мыши отпускается. Параметр событие - это объект, описывающий данное событие. Координаты указателя мыши в момент генерации события передаются в качестве параметров x и y. После обработки события этот метод должен возвращать true. |
[/color]
Обработчики событий мыши представлены в приведенном ниже апплете. При каждом нажатии кнопки в позиции указателя выводится слово "Down", а когда кнопка отпускается, выводится слово "Up". При передвижении указателя путь ее указателя отслеживается символом "*".
// Обработчики событий мыши
import java.awt.*;
import java.applet.*;
/*
<applet code="Mouse Event" width=300 height=100>
</applet>
*/
public class MouseEvents extends Applet {
String msg = "";
int mouseX =0, mouseY = 0; //Координаты указателя
//Обработка нажатия кнопки
public boolean mouseDown(Event evtObj, int x,int y) {
//Сохранение координат
mouseX = x;
mouseY = y;
msg = "Down";
repaint();
return true;
}
//Обработка отпускания кнопки
public boolean mouseUp(Event evtObj, int x,int y) {
//Сохранение координат
mouseX = x;
mouseY = y;
msg = "Up";
repaint();
return true;
}
//Обработка перемещения мыши
public boolean mouseMove(Event evtObj, int x,int y) {
//Вывод координат
showStatus("Moving mouse at " + x+ ", " + y);
return true;
}
//Обработка передвижения мыши
public boolean mouseDrag(Event evtObj, int x,int y) {
//Сохранение координат
mouseX = x;
mouseY = y;
msg = "*";
showStatus("Dragging mouse at " + x+ ", " + y);
repaint();
return true;
}
//Обработка перемещения указателя мыши на окно
public boolean mouseEnter(Event evtObj, int x,int y) {
//Сохранение координат
mouseX = 0;
mouseY = 10;
msg = "Mouse just entered";
repaint();
return true;
}
//Обработка выхода мыши за пределы окна
public boolean mouseExit(Event evtObj, int x,int y) {
//Сохранение координат
mouseX = 0;
mouseY = 10;
msg = "Mouse just left";
repaint();
return true;
}
//Вывод сообщения в окне аплета
public void paint(Graphics g) {
g.drawString(msg, mouseX, mouseY);
}
}