Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Пишущие Слушатели События
Раздел: Реализующие Слушатели для Обычно Обрабатываемых Событий
Как Записать Слушателю Действия
Домашняя страница > Создание GUI С JFC/Swing > Пишущие Слушатели События

Как Записать Слушателю Действия

Слушатели действия являются, вероятно, самыми легкими — и наиболее распространенными — обработчики событий, чтобы реализовать. Вы реализуете слушателя действия, чтобы определить то, что должно быть сделано, когда пользователь выполняет определенную работу.

Событие действия имеет место, всякий раз, когда действие выполняется пользователем. Примеры: То, когда пользователь нажимает кнопку, выбирает пункт меню, нажатия Входят в текстовое поле. Результат состоит в том что actionPerformed сообщение отправляется всем слушателям действия, которые регистрируются на соответствующем компоненте.

Чтобы записать Слушателю Действия, следуйте за шагами, данными ниже:

  1. Объявите обработчик событий class и определите, что class или реализует интерфейс ActionListener или расширяет class, который реализует интерфейс ActionListener. Например:
    public class MyClass implements ActionListener { 
    
  2. Зарегистрируйте экземпляр обработчика событий class как слушатель на одном или более компонентах. Например:
    someComponent.addActionListener(instanceOfMyClass);
    
  3. Включайте код, который реализует методы в интерфейсе слушателя. Например:
    public void actionPerformed(ActionEvent e) { 
        ...//code that reacts to the action... 
    }
    

Вообще, чтобы обнаружить, когда пользователь нажимает экранную кнопку (или делает эквивалентную клавиатуру), у программы должен быть объект, который реализует интерфейс ActionListener. Программа должна зарегистрировать этот объект как слушателя действия на кнопке (источник события), используя addActionListener метод. Когда пользователь нажимает экранную кнопку, кнопка запускает событие действия. Это приводит к вызову actionPerformed метода слушателя действия (единственный метод в интерфейсе ActionListener). Единственным параметром методу является объект ActionEvent, который дает информацию о событии и его источнике.

Давайте запишем простую программу, которая выводит на экран, сколько числа раз кнопка нажимается пользователем. Во-первых, вот код, который устанавливает TextField, кнопку и numClicks переменную:

public class AL extends Frame implements WindowListener,ActionListener {
TextField text = new TextField(20);
Button b;
private int numClicks = 0;

В вышеупомянутом примере обработчик событий class является AL, который реализует ActionListener.

Мы хотели бы обработать событие нажатия кнопки, таким образом, мы добавляем слушателя действия кнопки b как указано ниже:

b = new Button("Click me");
b.addActionListener(this); 

В вышеупомянутом коде Кнопка b является компонентом, на который экземпляр обработчика событий регистрируется AL class.

Теперь, мы хотим вывести на экран текст относительно сколько числа раз пользователь нажатая кнопка. Мы можем сделать это при записи кода как указано ниже:

public void actionPerformed(ActionEvent e) {
         numClicks++;
         text.setText("Button Clicked " + numClicks + " times");

Теперь, когда пользователь щелкает по Кнопке b, кнопка запускает событие действия, которое вызывает actionPerformed метод слушателя действия. Каждый раз пользователь нажимает кнопку, numClicks переменная добавляется, и сообщение выводится на экран в текстовом поле.

Вот полная программа (AL.java):


import java.awt.*;
import java.awt.event.*;

public class AL extends Frame implements WindowListener,ActionListener {
        TextField text = new TextField(20);
        Button b;
        private int numClicks = 0;

        public static void main(String[] args) {
                AL myWindow = new AL("My first window");
                myWindow.setSize(350,100);
                myWindow.setVisible(true);
        }

        public AL(String title) {

                super(title);
                setLayout(new FlowLayout());
                addWindowListener(this);
                b = new Button("Click me");
                add(b);
                add(text);
                b.addActionListener(this);
        }

        public void actionPerformed(ActionEvent e) {
                numClicks++;
                text.setText("Button Clicked " + numClicks + " times");
        }

        public void windowClosing(WindowEvent e) {
                dispose();
                System.exit(0);
        }

        public void windowOpened(WindowEvent e) {}
        public void windowActivated(WindowEvent e) {}
        public void windowIconified(WindowEvent e) {}
        public void windowDeiconified(WindowEvent e) {}
        public void windowDeactivated(WindowEvent e) {}
        public void windowClosed(WindowEvent e) {}

}

Больше Примеров: Beeper пример программы доступен во введении этого следа в события, Введении в Слушателей События. Можно найти всю программу в Beeper.java. Другой пример, описанный в том разделе, MultiListener.java, имеет два источника действия и двух слушателей действия, с одним слушателем, слушающим оба источника и другое слушание только один.

API Слушателя Действия

Интерфейс ActionListener

Поскольку ActionListener имеет только один метод, у него нет никакого соответствующего адаптера class.

Метод Цель
actionPerformed (actionEvent) Вызванный сразу после того, как пользователь выполняет действие.

Класс ActionEvent

Метод Цель
Представьте getActionCommand в виде строки () Возвращает строку, связанную с этим действием. Большинство объектов, которые могут запустить события действия, поддерживает вызванный метод setActionCommand это позволяет Вам устанавливать эту строку.
интервал getModifiers () Возвращает целое число, представляющее модифицирующие клавиши, которые нажимал пользователь, когда событие действия имело место. Можно использовать ActionEvent- определенные константы SHIFT_MASK, CTRL_MASK, META_MASK, и ALT_MASK определить, какие клавиши были нажаты. Например, если пользовательский Shift-selects пункт меню, то следующее выражение является ненулевым:
actionEvent.getModifiers() & ActionEvent.SHIFT_MASK
Возразите getSource ()
(в java.util.EventObject)
Возвращает объект, который запустил событие.

Примеры то Действие Использования Слушатели

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

Пример Где Описано Примечания
Beeper Этот раздел и Введение в Слушателей События Содержит одну кнопку с одним слушателем действия, который подает звуковой сигнал, когда Вы нажимаете кнопку.
MultiListener Введение в Слушателей События Регистры два различных слушателя действия на одной кнопке. Также регистрирует того же самого слушателя действия на двух различных кнопках.
RadioButtonDemo Как Использовать Переключатели Регистрирует того же самого слушателя действия на пяти переключателях. Слушатель использует getActionCommand метод, чтобы определить, который переключатель, запущенный событие.
MenuDemo Как Использовать Меню Шоу, как прислушаться к событиям действия на пунктах меню.
TextDemo Как Использовать Текстовые поля Апплет, который регистрирует слушателя действия на текстовом поле.
IconDemo Как Использовать Значки Загружает изображение в слушателе действия. Поскольку загрузка изображения может требовать времени, эта программа использует a SwingWorker загрузить изображение в фоновом потоке.
TableDialogEditDemo Как Использовать Таблицы Регистрирует слушателя действия через метод фабрики на кнопке OK цветного диалогового окна селектора.
SliderDemo Как Использовать Ползунки Регистрирует слушателя действия на таймере, который управляет циклом анимации.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Реализующие Слушатели для Обычно Обрабатываемых Событий
Следующая страница: Как Записать Слушателю Каре