Интерфейс MouseListener и обработка событий от мыши


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

Так например, кнопка для входа в систему из примера реализации окна входа в систему должна реагировать на щелчок по ней, проверяя имя и пароль, введенные пользователем.

Слушатель событий от мыши должен реализовать интерфейс MouseListener. В этом интерфейсе перечислены следующие методы:

public void mouseClicked(MouseEvent event) – выполнен щелчок мышкой на наблюдаемом объекте;

public void mouseEntered(MouseEvent event) – курсор мыши вошел в область наблюдаемого объекта;

public void mouseExited(MouseEvent event) – курсор мыши вышел из области наблюдаемого объекта;

public void mousePressed(MouseEvent event) – кнопка мыши нажата в момент, когда курсор находится над наблюдаемым объектом;

public void mouseReleased(MouseEvent event) – кнопка мыши отпущена в момент, когда курсор находится над наблюдаемым объектом.

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

Например, можно получить объект, вызвавший данное событие, командой event.getSource() (не забывайте, что один и тот же слушатель может быть зарегистрирован в нескольких объектах и иногда ему может понадобиться узнать, какой именно из них вызвал данный метод).

Метод getPoint() вернет координаты точки, в которой находился курсор мыши, когда было инициировано событие.

Метод getClickCount() возвращает число сделанных подряд щелчков (имеет смысл только для mouseClicked() и позволяет особым образом обработать двойной, тройной и т.п. щелчок).

Чтобы обработать нажатие на кнопку, требуется описать класс, реализующий интерфейс MouseListener, причем метод mouseClicked() должен содержать обработчик события. Далее необходимо создать объект этого класса и зарегистрировать его как слушателя кнопки. Для регистрации слушателя используется метод addMouseListener(MouseListener listener).

(ПОСЛЕДНИЙ ПРИМЕР ИЗ ПРЕДЫДУЩЕЙ ГЛАВЫ стр 106)

Опишем класс слушателя в пределах класса окна SimpleWindow, после конструктора. Обработчик события будет проверять, ввел ли пользователь логин «Иван» (пароль проверять не будем) и выводить сообщение об успехе или неуспехе входа в систему:

class MouseL implements MouseListener {

public void mouseClicked(MouseEvent event) {

if (loginField.getText().equals("Иван"))

JOptionPane.showMessageDialog(null, "Вход выполнен");

else

JOptionPane.showMessageDialog(null, "Вход НЕ выполнен");

}

public void mouseEntered(MouseEvent event) {}

public void mouseExited(MouseEvent event) {}

public void mousePressed(MouseEvent event) {}

public void mouseReleased(MouseEvent event) {}

}

Слушатель реализован вложенным классом класса SimpleWindow, чтобы он мог легко получить доступ к его внутренним полям loginField и passwordField. Кроме того, хотя реально обрабатываеся только одно из пяти возможных событий мыши, описывать приходится все пять методов (четыре имеют пустую реализацию). Дело в том, что в противном случае класс пришлось бы объявить абстрактным (ведь он унаследовал от интерфейса пустые заголовки методов) и нет возможности создать объект этого класса. А создать объект слушателя и прикрепить его к кнопке необходимо. Для этого в код конструктора SimpleWindow() необходимо добавить команду:

ok.addMouseListener(new MouseL());

Это можно сделать сразу после команды:

JButton ok = new JButton("OK");



Дата добавления: 2017-01-26; просмотров: 1757;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.