116
Рисунок 6.2 – События мыши
Рисунок 6.3 – События движения мыши
Слушатели событий мыши создаются
при помощи интерфейсов
MouseListener
и
MouseMotionListener
. Объект
MouseEvent
передается в
соответствующий метод, когда происходит событие мыши.
Для
данной программы, мы можем обработать только одно или два события
мыши. Для того, чтобы полностью реализовать интерфейс слушателя, пустые методы
должны быть предусмотрены для всех неиспользуемых событий
Пример: Dots.java и DotsPanel.java
import javax.swing.JFrame;
public class Dots {
public static void main (String[] args)
{
JFrame frame = new JFrame ("Dots");
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add (new DotsPanel());
frame.pack();
frame.setVisible(true);
}
}
import javax.swing.*;
118
public void mouseClicked (MouseEvent event) {}
public void mouseReleased (MouseEvent event) {}
public void mouseEntered (MouseEvent event) {}
public void mouseExited (MouseEvent event) {}
}
}
Полиморфизм играет важную роль в развитии графического пользовательского
интерфейса Java.
Как мы уже видели, мы устанавливаем связь между компонентом и слушателя:
JButton button = new JButton();
button.addActionListener(new MyListener());
Заметьте, что метод
addActionListener
принимает объект
MyListener
в
качестве
параметра.
На
самом
деле,
мы
можем
передать
методу
addActionListener
любой
объект,
который
реализует
интерфейс
ActionListener
.
Код
метода
addActionListener
принимает параметр
ActionListener
(интерфейс). Из-за полиморфизма, любой объект, который реализует этот интерфейс
совместим с параметром ссылочной переменной.
Компонент
может вызывать метод
actionPerformed
из-за связи между
классом слушателем и интерфейсом. Расширение класса
адаптера для создания
слушателя представляет собой такую же ситуацию; класс
адаптера уже реализует
соответствующий интерфейс.
Диалоговые окна
Напомним, что диалоговое окно — это небольшое окно, которое "всплывает",
чтобы взаимодействовать с пользователем в течение краткого время, для достижения
конкретной цели.
Класс
JOptionPane
позволяет легко создавать диалоговые окна для
представления
информации, подтверждающей какие-то действия,
или чтобы
принимать некоторые значения ввода.
Давайте теперь рассмотрим использование диалоговых окон на двух других
классах, которые позволяют нам создавать специализированные диалоговые окна.