Задания для самостоятельного выполнения

 

1. Составить программу вывода на экран дисплея схематичного изображения велосипедиста. При запуске программы велосипедист начинает движение, вращая ногами педали велосипеда.

2. Составить программу вывода на экран дисплея схематичного изображения человека. При запуске программы человек начинает идти, размахивая в такт движения руками.

3. Составить программу вывода в верхней части экрана дисплея изображения облака. При запуске программы облако начинает двигаться и из него начинает идти дождь. При этом размер облака постепенно уменьшается.

4. Составить программу вывода в верхнюю часть экрана дисплея изображения тучи, а в нижнюю часть экрана дисплея – емкость для воды. При запуске программы начинает идти дождь. При этом размер тучи уменьшается, a емкость наполняется водой.

5. Составить программу вывода в верхнюю часть экрана дисплея изображения тучи, а в нижнюю часть экрана дисплея – сугроб. При запуске программы начинает идти снег. При этом размер тучи уменьшается, a сугроб растет.

6. Составить программу вывода на экран дисплея изображения летящего самолета.

7. Составить программу вывода на экран дисплея изображения пушки. В правой части экрана появляется и исчезает (случайным образом) мишень. Нажатием кнопки производится выстрел из пушки. Момент попадания фиксируется в виде взрыва.

8. Составить программу вывода в верхней части экрана дисплея движущегося слева направо парусника с постоянной скоростью. Ее значение всякий раз задается генератором случайных чисел. В нижней части экрана дисплея расположена пушка. При нажатии кнопки происходит выстрел торпедой с постоянной скоростью. При попадании торпеды в пушку смоделировать взрыв парусника и его исчезновение. При промахе парусник достигает правой границы экрана дисплея и начинает движение сначала с новой постоянной скоростью.

9. Составить программу вывода на экран дисплея схематичного изображения лыжника. При  нажатии  кнопки  он  начинает  движение  классическим

стилем.

10. Составить программу вывода на экран дисплея схематичного человека в положении готовности осуществить прыжок в длину. При нажатии кнопки спортсмен начинает разбег и выполняет такой прыжок.

11. Составить программу вывода изображения циферблата механических часов с секундной, минутной и часовой стрелками. Организовать срабатывание будильника в заданное время.

12. Составить программу вывода на экран дисплея песочных часов. При нажатии кнопки моделируется процесс падения песчинок, уменьшение уровня песка в верхней части колбы и увеличение в нижней части колбы.

13. Составить программу вывода на экран дисплея треугольника. При нажатии клавиши курсор вправо треугольник вращается по часовой стрелке, клавиши курсор влево − против часовой стрелки.

14. Составить программу вывода на экран дисплея схематичного изображения  бабочки.  При  нажатии  кнопки  бабочка  начинает  полет,   взмахивая

крыльями.

15. Составить программу вывода на экран дисплея трех вложенных друг в друга окружностей, представляющих собой беговые дорожки. На линию старта выходят три спортсмена (произвольные фигуры). При нажатии кнопки участники стартуют с одинаковой угловой скоростью. После старта угловые скорости участников забега изменяются по случайному закону. На финише указать место, занятое каждым участником забега.



ЛАБОРАТОРНАЯ РАБОТА №3

РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

С ИСПОЛЬЗОВАНИЕМ ФРЕЙМОВ, ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

 

Цель: Научиться создавать простейшие 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 -объект, который сгенерировал это событие.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: