Тема 9. Разработка пользовательского интерфейса с использованием фреймов, элементов управления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 9. Разработка пользовательского интерфейса с использованием фреймов, элементов управления



 

Цель: Научиться создавать простейшие GUI-приложения.

 

События

В основу 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 определены несколько типов событий (табл. 3.1).

 

 

Таблица3.1

Классы событий

Класс событий Описание
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 -объект, который сгенерировал это событие.

Элементы-источники событий

В таблице 3.2 приведены некоторые элементы-источники событий, применяемые в Java, и их описание.

Таблица 3.2

Элементы-источники событий

Источник событий 1 Описание
Button (кнопка) Генерирует action -события, в тот момент когда нажимается кнопка
Checkbox (флажок) Генерирует item -события, когда флажок устанавливается/сбрасывается
Choice (список с выбором) Генерирует item -события, когда изменяется выбор элемента в списке с выбором
List (список) Генерирует action -события, когда на элементе списка выполнен двойной щелчок (мышью). Генерирует item-события, когда элемент выделяется или снимается выделение
MenuItem (пункт мею) Генерирует action -события, когда пункт меню выделен. Генерирует события элемента, когда пункт меню с меткой выделен или выделение отменяется.
Scrollbar (полоса прокрутки) Генерирует adjustment -события при манипуляциях с полосой прокрутки

 

Окончание табл. 3.2

   
TextField и TextArea (текстовое поле и текстовая область) Генерирует text -события, когда пользователь вводит символ
Window (окно) Генерирует window -события, когда окно активизируется, закрывается, деактивизируется, сворачивается в пиктограмму, разворачивается из пиктограммы, открывается или выполняется выход из него (quit).

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 145; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.104.120 (0.022 с.)