Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обработка событий мыши

Читайте также:
  1. IV. Обработка результатов
  2. IV. Обработка результатов измерений
  3. IV. Обработка результатов измерений
  4. IV. Обработка результатов измерений
  5. IV. Обработка результатов измерений
  6. IV. Обработка результатов.
  7. Алгебра событий

События мыши могут перехватываться любым компонентом GUI, потомком класса java. awt. Component. Для обработки событий мыши используются интерфейсы слушателей событий MouseListener и MouseMotionListener. Рассмотри их методы:

 

MouseListener – интерфейс:

public void mousePressed (MouseEvent event) – вызывается при нажатии кнопки мыши на компоненте.

public void mouseClicked (MouseEvent event) – вызывается при отпускании кнопки над компонентом без перемещения курсора (следует за mousePressed).

public void mouseReleased (MouseEvent event) – при отпускании кнопки (следует за mousePressed).

public void mouseEntered (MouseEvent event) – вызывается когда курсор входит в границы компонента.

public void mouseExited (MouseEvent event) – когда выходит за границы компонента.

 

MouseMotionListener – интерфейс:

public void mouseDragged (MouseEvent event) – вызывается, если кнопка мыши нажата и удерживается, а курсор передвигается (другим словом, перетаскивание), (следует за mousePressed и предшествует Released).

public void mouseMoved (MouseEvent event) – вызывается при передвижении мыши над компонентом, без нажатия.

 

Каждый из методов обработки событий мыши принимает в качестве аргумента объект MouseEvent. Объект MouseEvent содержит информацию о событиях мыши, включая x- и y- координаты указателя. Методы обработки событий мыши вызываются автоматически в тот момент, когда мышь взаимодействует с компонентом, если слушатели событий зарегистрированы для данного компонента.

Рассмотрим приложение, которое демонстрирует методы интерфейсов MouseMotionListener и MouseListener. Класс приложения реализует оба интерфейса, таким образом, он может обрабатывать события мыши.

 

// MouseTracker.java

1 import java.awt.*;

2 import java.awt.event.*;

3 import javax.swing.*;

 

4 public class MouseTracker extends JFrame

5 implements MouseListener, MouseMotionListener {

6 private JLabel statusBar;

7 public MouseTracker(){

8 super("Обработка событий мыши");

9 statusBar=new JLabel();

10 getContentPane().add(statusBar,BorderLayout.SOUTH);

11 addMouseListener(this);

12 addMouseMotionListener(this);

13 setSize(250,100);

14 setVisible(true);

15 }

16 public void mouseClicked(MouseEvent event){

17 statusBar.setText("Щелчок в точке ["+event.getX()

+","+event.getY()+"]");

18 }

 

19 public void mousePressed(MouseEvent event){

20 statusBar.setText("Нажатие в точке ["+event.getX()

+","+event.getY()+"]");

21 }

 

22 public void mouseReleased(MouseEvent event){

23 statusBar.setText("Кнопка отпущена в точке

["+event.getX() +","+event.getY()+"]");

24 }

25 public void mouseEntered(MouseEvent event){

26 JOptionPane.showMessageDialog(null,"мышь в окне");

27 }

 

28 public void mouseExited(MouseEvent event){

29 statusBar.setText("мышь вышла из окна");

30 }

 

31 public void mouseDragged(MouseEvent event){

32 statusBar.setText("Перетаскивание в точку

["+event.getX() +","+event.getY()+"]");

33 }

 

34 public void mouseMoved(MouseEvent event){

35 statusBar.setText("Перемещение в точку

["+event.getX() +","+event.getY()+"]");

36 }

 

37 public static void main(String args[]){

38 MouseTracker app=new MouseTracker();

39 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

40 }

41 }

 

 

 

 

Рис 20.5 Результат обработки событий мыши

 

В строках 11-12 регистрируется объект окна MouseTracker в качестве слушателя своих событий мыши (слово this означает, что слушателем является текущее окно). При попадании мыши в область окна приложения или выхода из нее вызывается метод mouseEntered (строки 25-27)или mouseExited (строки 28-30)соответственно. При этом выводится соответствующее сообщение в метке statusBar. Аналогично, при перемещении указателя, нажатии кнопки мыши, щелчке мыши в окне вызывается метод mouseMoved (строки 34-36) или mousePressed (строки 19-21)или mouseClicked (строки 16-18) соответственно. Результат выполнения каждого из перечисленных методов можно увидеть на рисунке 20.5.


Дата добавления: 2015-10-29; просмотров: 131 | Нарушение авторских прав


Читайте в этой же книге: Жизненный цикл программы на Java | Управляющие структуры и операции в Java | Создание программы. | Классы String и String Buffer | Основные свойства объектно-ориентированного подхода | Создание собственных пакетов. | Класс Graphics | Интерфейс Java2D | Графический интерфейс пользователя. | Менеджеры компоновки |
<== предыдущая страница | следующая страница ==>
Слушатели (listeners) полей и кнопок.| Классы адаптеры

mybiblioteka.su - 2015-2024 год. (0.006 сек.)