- •Методические указания по выполнению срс Программирование на языке java
- •Введение
- •1. Java - объектно-ориентированный язык программирования
- •1.1. Базовые типы данных
- •1.2. Операции (operators) в языке Java
- •1.2.1. Операции сравнения
- •1.2.2. Операции инкремента, декремента
- •1.3. Литералы (константы)
- •1.5. Массивы в Java
- •1.4. Операторы
- •1.6. Комментарии
- •1.7. Первая программа на языке Java
- •1.8. Цель, требования и рекомендации к выполнению задания
- •1.9. Задания
- •2. Абстрактные классы и Интерфейсы
- •2.1. Абстрактные классы
- •2.2. Интерфейсы
- •2.3. Цель, требования и рекомендации к выполнению задания
- •2.4. Задания
- •2.5. Пример выполнения задания.
- •3. Знакомство с библиотекой Swing
- •3.1. Основы оконной графики
- •3.2. Модель событий в Swing
- •3.3. Цель, требования и рекомендации к выполнению задания
- •3.4. Задания
- •3.5. Пример выполнения задания.
- •4. Апплеты
- •4.1. Проблема безопасности
- •4.2. Создание апплетов
- •4.3. Апплеты и приложения
- •4.4. Цель, требования и рекомендации к выполнению задания
- •4.5. Задания
- •4.6. Пример выполнения задания.
- •4.6.1. Запуск апплетов
- •4.6.2. Пример выполнения задания 2
- •5. Множественные нити выполнения (Multiple threads).
- •5.1. Реализация многопоточности в Java
- •5.1.1. Методы класса Thread
- •5.1.2. Реализация интерфейса Runnable
- •5.3. Завершение и останов нити
- •5.4. Приоритеты нитей
- •5.5. Средства синхронизации нитей в Java
- •5.6. Применение многопоточности для анимации
- •5.7. Цель, требования и рекомендации к выполнению задания
- •5.8. Задания
- •5.9. Пример выполнения задания.
- •Дополнительная информация и список литературы
- •Оглавление
3.2. Модель событий в Swing
В модели событий любой графический компонент может порождать (initiate) c событие( запускать (fire) событие). Каждое отдельное событие представлено определенным классом. Когда событие запущено, оно приходит к одному или нескольким слушателям (listener), которые его обрабатывают. Таким образом, места возникновения события и обработки события могут быть разделены. Компоненты Swing обычно используются без изменений, как есть, однако код для обработки их событий каждый раз пишется новый.
Слушатель каждого события – это объект класса, реализующего определенный вид интерфейса, характерного для всех слушателей этого события. Необходимо создать для обработки события объект-слушатель и зарегистрировать его в компоненте, который запускает интересующее его событие. Регистрация проводится с помощью подходящего метода addXXXListener(), находящегося в компоненте, который запускает событие, где ХХХ обозначает тип события, которое будет обрабатываться слушателем
Можно легко узнать, какие события можно обрабатывать в компоненте, для этого нужно посмотреть имена методов addXXXListener. Таким образом, все действия по обработке события будут находиться в классе слушателя. При создании класса слушателя единственным необходимым условием является реализация подходящего интерфейса
3.3. Цель, требования и рекомендации к выполнению задания
Цель выполнения задания: освоение приемов применения компонентов библиотеки Swing
Требования и рекомендации к выполнению задания:
проанализировать полученное задание, выделить информационные объекты и действия;
разработать программу с использованием соответствующих элементов (классов) библиотеки Swing;
3.4. Задания
Создать приложение. Поместить на него текстовое поле JTextField, кнопку JButton и метку JLabel. В метке отображать все ввденные символы, разделяя их пробелами.
Поместить в приложение две панели JPanel и кнопку. Первая панель содержит поле ввода и метку "Поле ввода"; вторая - поле вывода и метку "Поле вывода". Для размещения в окне двух панелей и кнопки "Скопировать" использовать менеджер размещения BorderLayout.
Изменить задачу 2 так, чтобы при нажатии на кнопку "Скопировать" текст из поля ввода переносится в поле вывода, а поле ввода очищается.
Задача 2 модифицируется так, что при копировании поля ввода нужно, кроме собственно копирования, организовать занесение строки из поля ввода во внутренний список. При решении использовать коллекцию, в частности ArrayList.
К условию задачи 2 добавляется еще одна кнопка с надписью "Печать". При нажатии на данную кнопку весь сохраненный список должен быть выведен в консоль. При решении использовать коллекцию, в частности TreeSet.
Написать программу для построения таблицы значений функции y = a-√x*cos(ax). Использовать метку JLabel, содержащую текст "Функция: у = a-√x * cos(ax)"; панель, включающую три текстовых поля JTextField, содержащих значения параметра, шага (например, 0.1) и количества точек. Начальное значение х=0. С каждым текстовым полем связана метка, содержащая его название. В приложении должно находиться текстовое поле со скроллингом, содержащее полученную таблицу.
Создать форму с набором кнопок так, чтобы надпись на первой кнопке при ее нажатии передавалась на следующую, и т.д.
Создать форму с выпадающим списком так, чтобы при выборе элемента списка на экране появлялись GIF-изображения, двигающиеся в случайно выбранном направлении по приложению.
В приложении изобразить прямоугольник (окружность, эллипс, линию). Направление движения объекта по экрану изменяется на противоположное щелчком по клавише мыши. При этом каждый второй щелчок меняет цвет фона.
Создать фрейм с изображением окружности. Длина дуги окружности изменяется нажатием клавиш от 1 до 9.
Создать фрейм с кнопками. Кнопки "вверх", "вниз", "вправо", "влево" двигают в соответствующем направлении линию. При достижении границ фрейма линия появляется с противоположной стороны.
Создать фрейм и разместить на нем окружность (одну или не сколько). Объект должен "убегать" от указателя мыши. При приближении на некоторое расстояние объект появляется в другом месте фрейма.
Создать приложение с изображением графического объекта. Объект на экране движется к указателю мыши, когда последний находится в границах приложения.
Изменить задачу 12 так, чтобы количество объектов зависело от размеров приложения и изменялось при "перетягивании" границы в любом направлении.
Промоделировать в приложении вращение спутника вокруг планеты по эллиптической орбите. Когда спутник скрывается за планетой, то не он виден.
Промоделировать в приложении аналоговые часы (со стрелками) с кнопками для увеличения/уменьшения времени на час/минуту.
