Разработка пользовательского интерфейса

Индекс материала
Разработка пользовательского интерфейса
Элементы-источники событий
Классы пакета AWT: Component, Window, Frame
Диалоговые окна
Все страницы
События
В основу Java-программирования наряду с другими положен механизм обработки событий.
Событие – объект, который описывает изменение состояния источника (нажатие кнопки, выбор пункта меню, разворачивание, сворачивание окошка, нажатие клавиши и т.д.). Источник – это объект, генерирующий события. Одно и то же событие может быть значимым для одних объектов и не существенным для других.
В Java различают два механизма обработки событий:
1) с помощью метода handleEvent() (применялся до версии jdk 1.1 (Java 1.0));
2) с помощью модели делегирования событий.
Далее будем рассматривать особенности обработки событий с применением второго механизма. В соответствии с моделью делегирования событий в обработке событий участвуют 2 объекта: источник (source) и блок прослушивания (listener − интерфейс для перехода конкретного вида события от конкретного компонента). Источник − объект, генерирующий событие. Блок прослушивания – объект, получающий уведомление о возникновении события, зарегистрированного одним или несколькими источниками, путем вызова одного из его методов (методов блока прослушивания) для приема и обработки этих уведомлений.
Методы обработки событий находятся в пакете java.awt.event.

Классы событий
В корне иерархии классов событий Java находится класс EventObject, находящийся в пакете java.util. Класс EventObject содержит 2 метода:
  • Object getSource( ) – возвращает источник события;
  • toString( ) – возвращает название этого события в виде строки.
В Java определены несколько типов событий.
Класс событий Описание
ActionEvent Генерируется, когда нажата кнопка, дважды щелкнут элемент списка или выбран пункт меню
AdjustmentEvent Генерируется при манипуляциях с полосой прокрутки
ComponentEvent Генерируется, когда компонент скрыт, перемещен, изменен в размере или становится видимым
ContainerEvent Генерируется, когда компонент добавлен или удален из контейнера
FocusEvent Генерируется, когда компонент получает или теряет фокус
ItemEvent Генерируется, когда помечен флажок или элемент списка, сделан выбор элемента в списке, выбран или отменен элемент меню с меткой
KeyEvent Генерируется, когда получен ввод с клавиатуры
MouseEvent Генерируется, когда объект перетащен мышью (dragged), перемещен (moved), произошел щелчок (clicked), нажата (pressed) или отпущена (released) кнопка мыши, указатель мыши входит или выходит в/за границы компонента
TextEvent Генерируется, когда изменено значение текстового поля
WindowEvent Генерируется, когда окно активизировано, закрыто, развернуто, организован выход из него

 

Класс ActionEvent
Определяет четыре целочисленные константы, которые можно использовать для идентификации любых модификаторов, связанных с событием действия: ALT_MASK, CTRL_MASK, META_MASK и SHIFT_MASK. Кроме того, существует целочисленная константа ACTION_PERFORMED, которую можно применять для идентификации action-события.
Имеет два конструктора:

ActionEvent ( Object src, int type, String cmd );
ActionEvent ( Object src, int type, String cmd, int modifiers );

src – ссылка на объект, который генерирует события (для следующих описываемых классов значение аналогичное);
type – тип события (для следующих описываемых классов значение аналогичное);
cmd – командная строка события;
modifiers – указывает, какие клавиши-модификаторы были нажаты при генерации события (Alt, Ctrl, Shift ).
Например, когда кнопка нажата, генерируется action-событие, которое имеет имя команды, равное метке или надписи на этой кнопке.

FocusEvent
Событие этого класса идентифицируется константой FOCUS_GAINED и FOCUS_LOST. Конструкторы класса:

FocusEvent ( Component src, int type );
FocusEvent ( Component src, int type, boolean temporaryFlag );

temporaryFlag – устанавливается как true, если cобытие фокуса временное, иначе – false.

ItemEvent
Существует два типа Item-событий, которые определяются константами:
DESELECTED – пользователь отменил выбор элемента;
SELECTED – выбрал элемент списка.

Конструктор класса:

ItemEvent ( ItemSelectable src, int type, Object entry, int state );
entry – передает конструкторы элемент, который генерировал Item-событие ;
state – состояние этого элемента.
Для того чтобы получить ссылку на объект ItemSelectable, используется метод getItemSelectable( ).

KeyEvent
Имеется   три   типа  Key-событий,   которые   идентифицируются   тремя
константами:
KEY_PRESSED – клавиша нажата;
KEY_RELEASED – клавиша отпущена;
KEY_TYPED – генерируется только при нажатии символьной клавиши.

Конструктор класса:
KeyEvent ( Component src, int type, long when, int modifiers, int code);
when – параметр, передающий конструктору системное время, когда была нажата клавиша;
modifiers – параметр, указывающий, какие модификаторы были нажаты вместе с клавишей;
code – параметр, передающий конструктору код клавиши.

MouseEvent
Существует семь типов Mouse-событий, которые идентифицируются семью константами:

MOUSE_CLICKED – пользователь щелкнул кнопкой мыши;
MOUSE_DRAGGED – пользователь перетащил мышь;
MOUSE_ENTERED – указатель мыши введен в компонент;
MOUSE_EXITED – указатель мыши выведен из компонента;
MOUSE_MOVED – мышь передвинута;
MOUSE_PRESSED – кнопка мыши нажата;
MOUSE_RELEASED – кнопка мыши освобождена.

Конструктор класса:
MouseEvent (Component src, int type, long when, int modifiers, int x, int y, int clicks, boolean triggersPopup );
x, y – координаты мыши;
clicks – подсчитывается количество щелчков;
triggersPopup – показывает, приводит ли это событие к появлению раскрывающегося меню; если да, то значение параметра соответствует true.
int getX( ); int getY( ); − методы для получения координат мышки.

TextEvent
TEXT_VALUE_CHANGED – событие, определяющее ввод текста пользователем в текстовое поле.
Конструктор класса:
TextEvent (Object src, int type);

 

WindowEvent
Существует семь типов событий WindowEvent:
WINDOW_ACTIVATED – окно активизировано;
WINDOW_CLOSED – окно закрыто;
WINDOW_DEACTIVATED – окно деактивизировано;
WINDOW_DEICONIFIED – окно развернуто из пиктограммы;
WINDOW_ICONIFIED – окно свернуто в пиктограмму;
WINDOW_OPENED – окно открыто;
WINDOW_CLOSING – пользователь потребовал закрытия окна.

Конструктор класса:

WindowEvent (Window src, int type);

Метод Window getWindow(); − возвращает Window-объект, который сгенерировал это событие.



 

Добавить комментарий


Защитный код
Обновить

Разработчику

Скрипты