
- •Амурский государственный университет Факультет математики и информатики
- •Допущено учебно-методическим объединением (умо) вузов
- •Методические указания к лабораторной работе
- •1. Простейшее приложение Hello
- •2. Структура Java-программы
- •2.1 Переменные
- •2.1.1 Примитивные типы
- •2.1.2 Ссылочные типы
- •2.2 Методы
- •2.3 Классы
- •2.3.1 Статические и динамические элементы (модификатор static)
- •2.3.2 Модификаторы доступа
- •2.3.3 Наследование классов
- •2.3.4 Специальные переменные
- •2.4 Пакеты и импортирование
- •2.4.1 Использование пакетов
- •2.4.2 Создание пакетов
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Простейший апплет Hello
- •1.1 Апплет Неllo, управляемый мышью
- •2. Простейший апплет HelloApplet, созданный Java Applet Wizard
- •2.1 Создание шаблона апплета HelloApplet
- •2.2 Исходные файлы апплета HelloApplet
- •2.3 Упрощенный вариант исходного текста апплета HelloApplet
- •3. Аргументы апплета
- •3.1 Передача параметров апплету
- •3.2 Апплет, принимающий параметры
- •3.4 Двойная буферизация графического изображения
- •4. События и их обработка
- •4.1 Обработчики событий от мыши и клавиатуры
- •4.2 Обработка событий
- •4.3 Апплет, обрабатывающий события
- •4.4 Устранение мерцания при выводе, двойная буферизация
- •5. Апплеты двойного назначения
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Рисование в окне
- •1.1 Графика
- •1.2 Цвет
- •1.3 Шрифты
- •1.4 Приложение FontsList
- •2. Обработка событий
- •2.1 Как обрабатываются события
- •2.2 События от мыши
- •2.3 Приложение LinesDraw
- •2.4 События от клавиатуры
- •2.5 Приложение KeyCodes
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Компоненты gui
- •2. Устройства или элементы управления
- •2.1 Кнопки
- •2.2 Флажки (или переключатели)
- •2.3 Меню выбора (или выпадающие списки)
- •2.4 Раскрывающиеся списки
- •2.5 Полосы прокрутки
- •2.6 Метки
- •2.7 Текстовые компоненты
- •3. Приложение AllElements
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Контейнеры
- •1.1 Панели
- •1.2 Окна
- •1.3 Рамки, фреймы
- •2. Менеджеры размещения компонентов
- •2.1 Типы менеджеров размещения
- •3. Поведение контейнера при наличии элементов управления
- •4. Приложение PanelsDemo1
- •5. Приложение PanelsDemo2
- •6. Приложение WindowsDemo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Методические указания к лабораторной работе
- •1. Процессы, задачи и приоритеты
- •2. Реализация многозадачности в Java
- •2.1 Создание подкласса Thread
- •2.2 Реализация интерфейса Runnable
- •2.3 Применение мультизадачности для анимации
- •2.4 Апплет двойного назначения, реализующий интерфейс Runnable
- •3. Потоки (нити)
- •3.1 Состояние потока
- •3.2 Исключительные ситуации для потоков
- •3.3 Приоритеты потоков
- •3.4 Группы потоков
- •4. Приложение VertScroller
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Автономные приложения. Потоки данных. Работа с локальными файлами (2 часа) методические указания к лабораторной работе
- •1. Самостоятельные графические приложения
- •2. Потоки ввода-вывода в Java
- •2.1. Обзор классов Java для работы с потоками
- •2.2 Стандартные потоки ввода-вывода
- •2.3 Потоки, связанные с локальными файлами
- •2.3.1 Создание потоков, связанных с локальными файлами
- •2.3.2 Запись данных в поток и чтение их из потока
- •2.3.3 Закрытие потоков
- •2.3.4 Принудительный сброс буферов
- •2.3.5 Приложение StreamDemo
- •2.4 Потоки в оперативной памяти
- •3 Работа с локальной файловой система
- •3.1 Работа с файлами и каталогами
- •3.2 Приложение DirList
- •3.3 Произвольный доступ к файлам
- •3.4 Просмотр локальной файловой системы
- •3.5 Приложение FileDialogDemo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Сетевые приложения: передача данных с использованием сокетов (2 часа)
- •1. Сокеты
- •2. Протокол tcp/ip, адрес ip и класс InetAddress
- •3. Потоковые сокеты
- •3.1 Создание и использование канала передачи данных
- •3.2 Конструкторы и методы класса Socket
- •3.3 Пример использования потоковых сокетов
- •4. Датаграммные сокеты (несвязываемые датаграммы)
- •4.1 Конструкторы и методы класса DatagramSocket
- •4.3 Пример использования датаграммных сокетов
- •5 Приложения ServerSocketApp и ClientSocketApp
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Связь по сети с помощью url (2 часа) методические указания к лабораторной работе
- •1. Универсальный адрес ресурсов url
- •2. Класс java.Net.Url в библиотеке классов Java
- •3. Использование класса java.Net.Url
- •3.1 Чтение из потока класса InputStream, полученного от объекта класса url
- •3.2 Получение содержимого файла, связанного с объектом класса url
- •4. Соединение с помощью объекта класса urlConnection
- •5. Приложение Diagram
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Создание и использование сервлетов (2 часа) методические указания к лабораторной работе
- •1. Как устроен сервлет
- •2. Вспомогательные классы
- •3. Запуск и настройка сервлетов
- •4. Сервлет example, принимающий параметры
- •5. Сервлет, обрабатывающий запросы на основе методов cet и post
- •6. Сервлет MyselfInfo
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Работа с базами данных, использование интерфейса jdbc(2 часа) методические указания к лабораторной работе
- •1. Написание апплетов, сервлетов и приложений jdbc
- •1.1 Соединение с базой данных
- •1.2 Применение интерфейса DatabaseMetaData
- •1.3 Посылка статичных sql-запросов
- •1.4 Посылка параметризированных и частовыполняемых sql-запросов
- •1.5 Выборка результатов
- •1.6 Применение интерфейса ResultSetMetaData
- •1.7 Доступ к хранимым функциям и процедурам
- •1.8 Применение выходных параметров
- •2. Обработка исключений jdbc
- •3. Отладка приложений jdbc
- •4. Сервлет, работающий с информацией из базы данных
- •Задания к лабораторной работе
- •Контрольные вопросы
- •Приложение 1 java-файл простейшего апплета и html-документ со ссылкой на него
- •Приложение 2 java-файл апплета, принимающего параметры, и html-документ со ссылкой на него
- •Приложение 3 java-файл апплета, обрабатывающего простые события мыши, и html-документ со ссылкой на него
- •Приложение 4 java-файлы апплета двойного назначения и html-документ со ссылкой на него
- •Приложение 5 java-файлы апплета двойного назначения, обрабатывающего сообщения от мыши, и html-документ со ссылкой на него
- •Приложение 6 java-файл апплета двойного назначения, реализующего интерфейс runnable, и html-документ со ссылкой на него
- •Приложение 7 самостоятельное графическое java-приложение
Задания к лабораторной работе
Задание 1. Проверить и объяснить работу всех апплетов, рассматриваемых в данной главе и отмеченных курсивом. Должны быть созданы следующие апплеты: Hello (пример 1), модифицированный апплет Hello (пример 2), HelloApplet (пример 3), AppletWithParam (пример 4), ParamUrlImage (пример 5), QuickPicture (пример 6), MouseEvent (пример 7), модифицированный апплет MouseEvent (пример 8), Combi (пример 9).
Задание 2. Дать ответы на контрольные вопросы.
Контрольные вопросы
Чем выполнение апплета отличается от выполнения простого Java-приложения?
Чем отличаются первичные классы приложения и апплета?
Какие методы должен переопределять первичный класс апплета?
Каковы принципы функционирования апплета?
Какие методы переопределяются в шаблоне апплета, предоставляемом системой Java Аpplet Wizard? Каково их назначение?
Как передаются параметры апплету?
Как загрузить графическое изображение из файла?
Как ускорить вывод графических изображений, загружаемых из файла?
Какие фрагменты кода для обработки параметров создает система Java Аpplet Wizard?
Что называется событием, когда они генерируются?
Какие обработчики событий используются чаще всего?
Как переменные содержит класс Event для идентификации события?
Как обработать любое событие?
Как приложение может само сгенерировать сообщение?
Как устранить мерцание при выводе изображений?
Что такое апплеты двойного назначения? Как они работают?
ЛАБОРАТОРНАЯ РАБОТА № 3.
РИСОВАНИЕ В ОКНЕ, ОБРАБОТКА СОБЫТИЙ МЫШИ И КЛАВИАТУРЫ (4 часа).
Методические указания к лабораторной работе
1. Рисование в окне
Язык Java предоставляет набор графических примитивов, которые позволяют рисовать текст, линии, прямоугольники и др. прямо на экране. При этом можно рисовать эти примитивы сами по себе и с заполнением каким угодно цветом. Для вывода текста можно использовать различные доступные шрифты.
1.1 Графика
В процессе рисования на экране прежде всего требуется наличие объекта класса Graphics (контекст отображения). Графические операции всегда выполняются над объектом Graphics. Например, в апплетах для вывода в окно используется метод paint(), которому передается единственный параметр - объект класса Graphics.
Некоторые методы класса Graphics:
Graphics - Конструктор нового объекта - контекста отображения
clearRect - Очищает указанный прямоугольник, заполняя цветом фона
clipRect - Задает область ограничения вывода
getClipRect - Возвращает ограничивающий прямоугольник области отсечения
copyArea - Копирует область экрана
create - Создает новый объект, который является копией исходного объекта
draw3DRect - Рисует прямоугольник с объемным эффектом
drawArc - Рисует дугу текущим цветом
drawBytes - Рисует указанные байты текущим шрифтом и цветом
drawChars - Рисует указанные символы текущим шрифтом и цветом
drawImage - Рисует указанное изображение типа Image
drawLine - Рисует линию между точками
drawOval - Рисует овал внутри указанного прямоугольника текущим цветом
drawPolygon - Рисует многоугольник текущим цветом
drawRect - Рисует контур прямоугольника текущим цветом
drawRoundRect - Рисует контур прямоугольника с закругленными краями
DrawString - Рисует указанную строку текущим шрифтом и текущим цветом
fill3DRect - Раскрашивает цветом прямоугольник с объемным эффектом
fillArc - Заполняет дугу текущим цветом
fillOval - Заполняет овал текущим цветом
fillPolygon - Заполняет многоугольник текущим цветом
fillPolygon - Заполняет объект класса Polygon текущим цветом
fillRect - Заполняет прямоугольник текущим цветом
fillRoundRect - Заполняет прямоугольник с закругленными краями
GetColor - Получить текущий цвет
getFont - Получить текущий шрифт
getFontMetrics - Получить размеры шрифта
setColor - Устанавливает текущий цвет
setFont - Устанавливает текущий шрифт
setPaintMode - Устанавливает режим заполнения текущим цветом
setXORMode - Устанавливает режим заполнения
translate - Сдвиг начала системы координат в контексте отображения