Уроки по Visual Basic.NET. Написание Windows-программ, создание собственных компонентов, примеры и исходники, работа с базами данных, создание веб-приложений, FAQ, и многое другое.
Java. Апплеты. Урок 13. Класс MouseEvent
В предыдущих уроках мы рассматривали работу с мышкой. Напомним, что для этого мы объявляли класс нашего апплета потомком интерфейсов MouseListener и MouseMotionListener. Во всех методах интерфейсов, которые мы должны были реализовать для нашего апплета, присутствовал параметр типа MouseEvent. Рассмотрим этот класс более подробно.
Указанный класс позволяет получить такие данные, как координаты мыши (x и y), нажатую кнопку мыши (левая, правая или средняя), была ли нажата одна из трех клавиш-модификаторов на клавиатуре - Ctrl, Alt или Shift.
Вот пример реализации метода mouseClicked интерфейса MouseListener:
public void mouseClicked(MouseEvent e){
if(e.getButton()==MouseEvent.BUTTON1){
x=e.getX();
y=e.getY();
repaint();
}
}
В этом примере мы определяем, что за кнопка мыши была нажата, используя при этом метод getButton() и статическую константу BUTTON1 класса MouseEvent (для остальных кнопок мыши константы будут BUTTON2 и BUTTON3 соответственно). Если нажата левая кнопка мыши, то мы получаем координаты мыши через вызов методов getX() и getY() класса MouseEvent и вызываем перерисовку. Наряду с методами getX() и getY() можно использовать и метод getPoint() - он возвращает объект типа Point.
А вот пример, в котором мы определяем, была ли при нажатии кнопки мыши удержана клавиша Alt:
public void mouseClicked(MouseEvent e){
if(e.isAltDown()){
p = e.getPoint(); // p - переменная типа Point.
repaint();
}
}
Тут для опеределения, была ли нажата клавиша Alt, мы используем метод isAltDown класса MouseEvent. Соответствующие методы для других кнопок - это isControlDown() и isShiftDown().