Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9 Материалы СРС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
424 Кб
Скачать
☆

3.2. Модель событий в Swing

В модели событий любой графический компонент может порождать (initiate) c событие( запускать (fire) событие). Каждое отдельное событие представлено определенным классом. Когда событие запущено, оно приходит к одному или нескольким слушателям (listener), которые его обрабатывают. Таким образом, места возникновения события и обработки события могут быть разделены. Компоненты Swing обычно используются без изменений, как есть, однако код для обработки их событий каждый раз пишется новый.

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

Можно легко узнать, какие события можно обрабатывать в компоненте, для этого нужно посмотреть имена методов addXXXListener. Таким образом, все действия по обработке события будут находиться в классе слушателя. При создании класса слушателя единственным необходимым условием является реализация подходящего интерфейса

3.3. Цель, требования и рекомендации к выполнению задания

Цель выполнения задания: освоение приемов применения компонентов библиотеки Swing

Требования и рекомендации к выполнению задания:

  1. проанализировать полученное задание, выделить информационные объекты и действия;

  2. разработать программу с использованием соответствующих элементов (классов) библиотеки Swing;

3.4. Задания

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

  2. Поместить в приложение две панели JPanel и кнопку. Первая панель содержит поле ввода и метку "Поле ввода"; вторая - поле вывода и метку "Поле вывода". Для размещения в окне двух панелей и кнопки "Скопировать" использовать менеджер размещения BorderLayout.

  3. Изменить задачу 2 так, чтобы при нажатии на кнопку "Скопировать" текст из поля ввода переносится в поле вывода, а поле ввода очищается.

  4. Задача 2 модифицируется так, что при копировании поля ввода нужно, кроме собственно копирования, организовать занесение строки из поля ввода во внутренний список. При решении использовать коллекцию, в частности ArrayList.

  5. К условию задачи 2 добавляется еще одна кнопка с надписью "Печать". При нажатии на данную кнопку весь сохраненный список должен быть выведен в консоль. При решении использовать коллекцию, в частности TreeSet.

  6. Написать программу для построения таблицы значений функции y = a-√x*cos(ax). Использовать метку JLabel, содержащую текст "Функция: у = a-√x * cos(ax)"; панель, включающую три текстовых поля JTextField, содержащих значения параметра, шага (например, 0.1) и количества точек. Начальное значение х=0. С каждым текстовым полем связана метка, содержащая его название. В приложении должно находиться текстовое поле со скроллингом, содержащее полученную таблицу.

  7. Создать форму с набором кнопок так, чтобы надпись на первой кнопке при ее нажатии передавалась на следующую, и т.д.

  8. Создать форму с выпадающим списком так, чтобы при выборе элемента списка на экране появлялись GIF-изображения, двигающиеся в случайно выбранном направлении по приложению.

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

  10. Создать фрейм с изображением окружности. Длина дуги окружности изменяется нажатием клавиш от 1 до 9.

  11. Создать фрейм с кнопками. Кнопки "вверх", "вниз", "вправо", "влево" двигают в соответствующем направлении линию. При достижении границ фрейма линия появляется с противоположной стороны.

  12. Создать фрейм и разместить на нем окружность (одну или не сколько). Объект должен "убегать" от указателя мыши. При приближении на некоторое расстояние объект появляется в другом месте фрейма.

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

  14. Изменить задачу 12 так, чтобы количество объектов зависело от размеров приложения и изменялось при "перетягивании" границы в любом направлении.

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

  16. Промоделировать в приложении аналоговые часы (со стрелками) с кнопками для увеличения/уменьшения времени на час/минуту.