Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Приложение 5. Обработка событий.




Java 2 использует хорошо структурированную, функционально полную и очень логичную модель обработки событий, впервые реализованную в JDK 1.1. Иерархия классов событий имеет вид:

· Object

· EventObject

· AWTEvent

· ActionEvent

· AdjustmentEvent

· ItemEvent

· TextEvent

· ComponentEvent

· ContainerEvent

· FocusEvent

· WindowEvent

· PaintEvent

· InputEvent

· KeyEvent

· MouseEvent

Классы и интерфейсы для работы с делегированными событиями расположены в пакете java.awt.event (см. рисунок 5).

 

В классах событий существуют открытые методы:

Класс Метод Возвращаемые данные
EventObject Object getSource() объект, вызвавший события
String toString() строка, описывающая событие
AWTEvent int getID() идентификатор типа события
String paramString() строка параметров события
ActionEvent int getModifiers() состояние клавиш-модификаторов
String getActionCommand() название действия
AdjustmеntEvent int getValue() текущее значение, полученное из прокрутки
int getAdjustmentType() тип установки прокрутки, изменившей значения
Adjustable getAdjustable() ссылка на объект прокрутки, установивший значение
ItemEvent Object getItem() пункт списка, измененный данным событием
Container getContainer() объект, вызвавший данное событие
FocusEvent boolean isTemporary() истину, если фокус ввода данного объекта возобновляется самостоятельно
PaintEvent Graphics getGraphics() графический контекст для данного события
WindowEvent Window getWindow() ссылка на окно, которое вызвало данное событие
InputEvent boolean isShiftDown() истина, если нажата клавиша Shift
boolean isControlDown() истина, если нажата клавиша Control
boolean isMetaDown() истина, если нажата клавиша Meta
boolean isAltDown() истина, если нажата клавиша Alt
int getWhen() время в миллисекундах с того времени, как произошло данное событие
int getModifiers() состояние всех модификаторов клавиатуры
boolean isConsumed() истина, если событие обработано
KeyEvent int getKeyCode() код клавиши, вызвавшей событие
char getKeyChar() символ клавиши, вызвавшей событие
boolean isActionKey() истина, если клавиша, вызвавшая событие, является функциональной клавишей
MouseEvent int getX() текущая абсцисса указателя мыши при генерации данного события
int getY() текущая ордината указателя мыши при генерации данного события
Point getPoint() положение указателя мыши при генерации данного события
getClickCount() число нажатий на кнопку мыши при генерации данного события
isPopupTrigger() истина, если данное событие связано с переключателем всплывающего меню для текущей операционной платформы

 

Классы, ответственные за обработку событий в JDK 1.1, реализуют интерфейсы “прослушивания” событий (listeners):

 

Интерфейс Переопределяемые методы Описание
ActionListener actionPerformed (ActionEvent e) произведено некоторое действие
AdjustmentListener adjustementValueChanged (AdjustmentEvent) изменилось значение в линии прокрутки
ComponentListener componentResized (ComponentEvent e) компонент изменил размер
componentMoved (ComponentEvent e) компонент изменил расположение
componentShown (ComponentEvent e) компонент отображен
componentHidden (ComponentEvent e) компонент спрятан
ContainerListener componentAdded (ContainerEvent e) компонент добавлен в контейнер
componentRemoved (ContainerEvent e) компонент убран из контейнера
FocusListener focusGained(FocusEvent e) компонент получил фокус ввода
focusLost (FocusEvent e) компонент потерял фокус ввода
ItemListener ItemStateChaged (ItemEvent e) изменился выделенный пункт выбора
KeyListener keyTyped(KeyEvent e) напечатан символ
keyPressed(KeyEvent e) нажата клавиша
keyReleased(KeyEvent e) нажатая клавиша отпущена
MouseListener mouseClicked(MouseEvent e) нажата и отпущена кнопка мыши
mousePressed(MouseEvent e) нажата кнопка мыши
mouseReleased(MouseEvent e) отпущена нажатая кнопка мыши
mouseEntered(MouseEvent e) указатель мыши вошел в область компонента
mouseExited(MouseEvent e) указатель мыши вышел из области компонента
MouseMotionListener mouseDragged(MouseEvent e) перемещен указатель мыши при нажатой кнопке мыши
mouseMoved(MouseEvent e) перемещен указатель мыши при не нажатой кнопке мыши
TextListener textValueChanged(TextEvent e) текстовое значение изменилось
WindowListener windowOpened(WindowEvent e) окно открыто
windowClosing(WindowEvent e) окно закрывается
windowClosed(WindowEvent e) окно закрыто
windowIconified(WindowEvent e) окно минимизировано
windowDeiconified (WindowEvent e) окно восстановило размеры после минимизации
windowActivated (WindowEvent e) окно активировано (является окном ввода информации)
windowDeactivated (WindowEvent e) окно перестало быть активным окном

Некоторым интерфейсам событий соответствуют открытые абстрактные классы-адаптеры, содержащие пустые методы для обработки событий:

Интерфейс Класс
ComponentListener ComponentAdapter
ContainerListener ContainerAdapter
FocusListener FocusAdapter
KeyListener KeyAdapter
MouseListener MouseAdapter
MouseMotionListener MouseMotionAdapter
MouseInputListener MouseInputAdapter
WindowListener WindowAdapted


К действиям относятся события, поступающие от компонентов:

Компонент Генерируемое событие
Button нажатие на кнопку мыши
MenuItem нажатие на кнопку мыши
List нажатие на кнопку мыши
нажатие на клавишу возврата каретки
TextField нажатие на клавишу возврата каретки

Управляющие компоненты регистрируют “прослушивание” событий при помощи методов вида:

void add ТипКомпонента Listener(объектРеализующийПрослушивание)

и освобождаются от “прослушивания” событий при помощи соответствующих методов вида:

void remove ТипКомпонента Listener(объектРеализующийПрослушивание)

Класс Метод для добавления “слушателя” события
Componenet addComponentListener(ComponenetListener l) addFocusListener(FocusListener l) addKeyListener(KeyListener) addMouseListener(MouseListener l) addMouseMotionListener(MouseMotionListener l)
Container addContainerListener(ContainerListener l)
Button addActionListener(ActionListener l)
Checkbox addItemListener(ItemListener l)
CheckboxMenuItem addItemListener(ItemListener l)
Choice addItemListener(ItemListener l)
List addItemListener(ItemListener l) addActionListener(ActionListener l)
MenuItem addActionListener(ActionListener l)
Scrollbar addAdjustnmentListener(AdjustmentListener l)
TextComponent addTextListener(TextListener l)
TextArea addActionListener(ActionListener l)
Window addWindowListener(WindowListener l)

 

Приведем пример приложения, обрабатывающего событие ActionEvent

Пример работы с событием действия (ActionEvent)


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

public class FrameActionEvent extends Frame implements ActionListener{
Label l = new Label(); // Создадим метку для вывода сообщения

Button b = new Button("OK"); // Создадим кнопку, генерирующую сообщение

public void FrameActionEvent()
{
setLayout(null); // Установим абсолютное размещение компонентов

setBackground(Color.lightGray); // Установим светло-серый фон

 

// Установим границы управляющих компонентов
l.setBounds(20, 10, 40, 20); // метки
b.setBounds(20, 40, 40, 20); // кнопки

// Зарегистрируем для кнопки “прослушивание” событий
b.addActionListener(this);

// Добавим в окно
add(l); // метку
add(b); // кнопку
}

// Реализуем обработку события действия
public void actionPerformed(ActionEvent e)
{
l.setText("I'm OK!");
}
}

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...