Факультет "Информатика и системы управления"
Методические указания к лабораторной работе
по курсу "Распределенные системы обработки информации"
Многопоточность
Москва 2004 г.
Оглавление
Цель работы.. 3
Задание для домашней подготовки. 3
Задание к лабораторной работе. 3
Содержание отчета. 4
Контрольные вопросы. 4
Литература. 6
Приложение 1. Графические примитивы. 7
Методы класса Graphics. 7
Преобразование координат. 21
Рисование фигур средствами Java2D.. 25
Приложение 2. Манипуляции с курсорами. 31
Класс Cursor 31
Приложение 3. Обработка действий мыши и клавиатуры. 35
Обработка действий мыши. 35
Обработка действий клавиатуры.. 36
Приложение 4. Нити процессов. 38
Класс Thread и интерфейс Runnable. 39
Приложение 5. Согласование работы нескольких потоков. 43
Приложение 6. Пример программы «Бегущая строка». 44
Цель работы 1. Освоить пакет java.applet и класс java.applet.Applet.
2. Научится обрабатывать действия мыши и клавиатуры.
3. Познакомиться с возможностями пакетов java.awt.geom, java.awt и классов java.awt.Graphics и java.awt.Graphics2D.
4. Изучить основные графические примитивы.
5. Освоить работу с потоками.
6. Применить полученные знания на практике
Задание для домашней подготовки Ознакомиться с теоретическим материалом, представленным в приложениях к данным методическим указаниям и примерами программ. Ознакомиться с текстом задания к лабораторной работе, предложить тематику (сюжет) игры и функциональность, удовлетворяющую требованиям задания к лабораторной работе, и написать программу.
Задание к лабораторной работе Разработать аплет, реализующий игру, который должен содержать следующие элементы:
o основа пользовательского интерфейса — графические объекты, созданные на основе пакетов java.awt, java.awt.geom и классов java.awt.Graphics и java.awt.Graphics2D.
o не менее двух движущихся объектов, созданных на основе тех же пакетов и классов. Каждый объект должен управляется своим потоком, что должно быть визуально заметно (например, с помощью задания разных значений в соответствующих методах Thread.sleep()).
Управление игрой должно осуществляться с клавиатуры и/или мышью. Если используется только мышь, то нельзя использовать курсор, заданный по умолчанию, (вместо него надо использовать любой другой, подходящий по смыслу, или создать свой).
o дополнительно (не обязательно) – в игре может вестись подсчет очков.
В качестве возможного варианта игры подойдет, например, «тир» или «футбол».
Содержание отчета
Отчет должен содержать:
1. Постановку задачи, решаемой отлаженной программой.
2. Руководство пользователя отлаженной программы, содержащее описание интерфейсов всех функций программы.
3. Листинг программы с необходимыми комментариями.
Контрольные вопросы 1. В случае, если программа – аплет состоит из нескольких классов и после компиляции сгенерировано несколько файлов *.class, как внутри контейнера <applet></applet> html – файла это необходимо указать?
2. Сколько классов в пакете java.applet?
3. Как получить координаты центра окна?
4. Что такое интерлиньяж?
5. Как задать форму курсора?
6. Назовите имя главного потока в Java – программе (главный поток – это поток, который запускает метод main()).
7. По какому принципу присваиваются имена потокам, чьи имена не задаются программистом явно?
8. Каким образом можно составить композицию аффинных преобразований, чтобы в дальнейшем применять ее к объекту как единое преобразование.
Литература
Официальные источники:
1. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. ............