Microsoft Word кл программирование на Java 2020 Зорина docx



Pdf көрінісі
бет54/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   50   51   52   53   54   55   56   57   ...   65
 
6.2 Обработка событий. 
События Мыши 
• 
События, связанные с мышью разделены на события мыши (рисунок 6.2) 
и события движения мыши (рисунок 6.3). 


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.*; 


117 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
public class DotsPanel extends JPanel{ 
private final int WIDTH = 300, HEIGHT = 200; 
private final int RADIUS = 6; 
private ArrayList pointList; 
private int count; 
//
Устанавливаем
эту
панель

чтобы
слушать
события
мыши

public DotsPanel() {
pointList = new ArrayList(); 
count = 0; 
addMouseListener (new DotsListener()); 
setBackground (Color.black); 
setPreferredSize (new Dimension(WIDTH, HEIGHT)); 

//
рисуем
все
точки

которые
хранятся
в
списке
public void paintComponent (Graphics page) { 
super.paintComponent(page); 
page.setColor (Color.green); 
// 
создаем
итератор
для
ArrayList 
точек
Iterator pointIterator = pointList.iterator(); 
while (pointIterator.hasNext()) { 
Point drawPoint = (Point) pointIterator.next(); 
page.fillOval (drawPoint.x - RADIUS, 
drawPoint.y - RADIUS, 
RADIUS * 2, RADIUS * 2); 

page.drawString ("Count: " + count, 5, 15); 

//
класс
слушателя
событий
мыши
.
//**********************************************************
******* 
private class DotsListener implements MouseListener { 
//
добавляет
текущую
точку
в
список
точек
и
перерисовываем
// 
При
каждом
нажатии
кнопки
мыши

public void mousePressed (MouseEvent event) { 
pointList.add (event.getPoint()); 
count++; 
repaint();
//
Обеспечить
пустые
определения
для
неиспользуемых
методов
событий



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
позволяет легко создавать диалоговые окна для 
представления информации, подтверждающей какие-то действия, или чтобы 
принимать некоторые значения ввода. 
Давайте теперь рассмотрим использование диалоговых окон на двух других 
классах, которые позволяют нам создавать специализированные диалоговые окна. 


119 


120 


Достарыңызбен бөлісу:
1   ...   50   51   52   53   54   55   56   57   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет