События действия
Событие действия - это семантические событие, зависящее от типа компонента. Так, для командной кнопки событием действия будет щелчок мышью или нажатие клавиши Enter в момент, когда кнопка имеет фокус. Для компонентов типа "список" событием действия является выбор элемента, для компонентов "меню" - выбор пункта меню, а для компонентов "текстовое поле" - нажатие клавиши Enter.
События действия определяются в интерфейсе ActionListener. Этот интерфейс задает единственный метод обработки события actionPerformed, вызываемый при возникновении для компонента сооответствующего его типу события действия.
Для того чтобы обрабатывать событие действия, можно выполнить следующее:
- Создать класс, наследующий интерфейс ActionListener. Например:
public class MyFrame extends Frame implements ActionListener { }.
- Зарегистрировать блок прослушивания события действия для компонента. Например:
myButton.addActionListener(this).
- Переопределить метод actionPerformed: Например:
public void actionPerformed(ActionEvent e) { Toolkit.getDefaultToolkit().beep(); }.
Метод обработки события действия получает параметр типа ActionEvent.
Класс ActionEvent определен в иерархии классов Java следующим образом:
Класс ActionEvent определяет и наследует несколько полезных методов, включая следующие:
- GetActionCommand - метод возвращает строку, ассоциируемую с данным событием действия. Если для объекта был ранее вызван метод setActionCommand, устанавливающий такую строку, то эта строка и будет возвращена. В противном случае, возвращаемое значение зависит от типа компонента/
- GetModifiers - возвращает число, определяющее, была ли нажата клавиша-модификатор при возникновении события действия. Для определения кода нажатой клавиши-модификатора можно использовать константы SHIFT_MASK, CTRL_MASK и ALT_MASK.Например, если при возникновении события действия была нажата клавиша Shift, то следующее выражение не будет равно нулю:
actionEvent.getModifiers() & ActionEvent. SHIFT_MASK.
- getSource - метод возвращает объект, для которого было инициировано событие.