Spec-Zone .ru
спецификации, руководства, описания, API
|
Слушатели действия являются, вероятно, самыми легкими — и наиболее распространенными — обработчики событий, чтобы реализовать. Вы реализуете слушателя действия, чтобы определить то, что должно быть сделано, когда пользователь выполняет определенную работу.
Событие действия имеет место, всякий раз, когда действие выполняется пользователем. Примеры: То, когда пользователь нажимает кнопку, выбирает пункт меню, нажатия Входят в текстовое поле. Результат состоит в том что actionPerformed
сообщение отправляется всем слушателям действия, которые регистрируются на соответствующем компоненте.
Чтобы записать Слушателю Действия, следуйте за шагами, данными ниже:
public class MyClass implements ActionListener {
someComponent.addActionListener(instanceOfMyClass);
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
, имеет два источника действия и двух слушателей действия, с одним слушателем, слушающим оба источника и другое слушание только один.
Поскольку ActionListener
имеет только один метод, у него нет никакого соответствующего адаптера class.
Метод | Цель |
---|---|
actionPerformed (actionEvent) | Вызванный сразу после того, как пользователь выполняет действие. |
Метод | Цель |
---|---|
|
Возвращает строку, связанную с этим действием. Большинство объектов, которые могут запустить события действия, поддерживает вызванный метод setActionCommand это позволяет Вам устанавливать эту строку. |
|
Возвращает целое число, представляющее модифицирующие клавиши, которые нажимал пользователь, когда событие действия имело место. Можно использовать ActionEvent - определенные константы SHIFT_MASK , CTRL_MASK , META_MASK , и ALT_MASK определить, какие клавиши были нажаты. Например, если пользовательский Shift-selects пункт меню, то следующее выражение является ненулевым: actionEvent.getModifiers() & ActionEvent.SHIFT_MASK |
(в java.util.EventObject ) |
Возвращает объект, который запустил событие. |
Следующая таблица приводит некоторые из многих примеров то действие использования слушатели.
Пример | Где Описано | Примечания |
---|---|---|
Beeper |
Этот раздел и Введение в Слушателей События | Содержит одну кнопку с одним слушателем действия, который подает звуковой сигнал, когда Вы нажимаете кнопку. |
MultiListener |
Введение в Слушателей События | Регистры два различных слушателя действия на одной кнопке. Также регистрирует того же самого слушателя действия на двух различных кнопках. |
RadioButtonDemo |
|
Регистрирует того же самого слушателя действия на пяти переключателях. Слушатель использует getActionCommand метод, чтобы определить, который переключатель, запущенный событие. |
MenuDemo |
Как Использовать Меню | Шоу, как прислушаться к событиям действия на пунктах меню. |
TextDemo |
Как Использовать Текстовые поля | Апплет, который регистрирует слушателя действия на текстовом поле. |
IconDemo
|
Как Использовать Значки | Загружает изображение в слушателе действия. Поскольку загрузка изображения может требовать времени, эта программа использует a SwingWorker загрузить изображение в фоновом потоке. |
TableDialogEditDemo |
Как Использовать Таблицы | Регистрирует слушателя действия через метод фабрики на кнопке OK цветного диалогового окна селектора. |
SliderDemo |
Как Использовать Ползунки | Регистрирует слушателя действия на таймере, который управляет циклом анимации. |