Материал: 5 - Презентация

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Центрдистанционногообучения

 

Полиморфизм играет важную роль в развитии графического пользовательского интерфейса Java

Как мы уже видели, мы устанавливаем связь между компонентом и слушателя:

JButton button = new JButton(); button.addActionListener(new MyListener());

Заметьте, что метод addActionListener принимает объект MyListenerв качестве параметра

На самом деле, мы можем передать методу addActionListener любой объект, который реализует интерфейс ActionListener

9-6

online.mirea.ru

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

Центрдистанционногообучения

 

Код метода addActionListener принимает параметр

ActionListener (интерфейс)

Из-за полиморфизма, любой объект, который реализует

этот интерфейс совместим с параметром ссылочной переменной

Компонент может вызывать метод actionPerformed из-за связи между классом слушателем и интерфейсом

Расширение класса адаптера для создания слушателя представляет собой такую же ситуацию; класс адаптера уже реализует соответствующий интерфейс

9-7

online.mirea.ru

Центрдистанционногообучения

Кнопки

Нажатая кнопка является компонентом, который позволяет пользователю инициировать действия, а именно нажав графическую кнопку с помощью мыши

Нажатие кнопки объекта класса Jbutton

Он генерирует события действия

Пример PushCounter отображает кнопки и увеличивает счетчик каждый раз, когда кнопка нажимается

4-8online.mirea.ru

Центрдистанционногообучения

PushCounterPanel.java

import java.awt.*; import java.awt.event.*; import javax.swing.*;

public class PushCounterPanel extends JPanel { private int count;

private JButton push; private JLabel label; public PushCounterPanel () {

count = 0;

push = new JButton ("Push Me!"); push.addActionListener (new ButtonListener()); label = new JLabel ("Pushes: " + count);

add (push); add (label);

}

4-9online.mirea.ru

Центрдистанционногообучения

PushCounterPanel.java

setPreferredSize (new Dimension(300, 40)); setBackground (Color.cyan);

private class ButtonListener implements ActionListener { public void actionPerformed (ActionEvent event)

{

count++;

label.setText("Pushes: " + count);

}

}

}

4-10online.mirea.ru