![]() |
||
|
Главная Рефераты по сексологии Рефераты по информатике программированию Рефераты по биологии Рефераты по экономике Рефераты по москвоведению Рефераты по экологии Краткое содержание произведений Рефераты по физкультуре и спорту Топики по английскому языку Рефераты по математике Рефераты по музыке Остальные рефераты Рефераты по авиации и космонавтике Рефераты по административному праву Рефераты по безопасности жизнедеятельности Рефераты по арбитражному процессу Рефераты по архитектуре Рефераты по астрономии Рефераты по банковскому делу Рефераты по биржевому делу Рефераты по ботанике и сельскому хозяйству Рефераты по бухгалтерскому учету и аудиту Рефераты по валютным отношениям Рефераты по ветеринарии Рефераты для военной кафедры Рефераты по географии Рефераты по геодезии Рефераты по геологии Рефераты по геополитике Рефераты по государству и праву Рефераты по гражданскому праву и процессу Рефераты по делопроизводству Рефераты по кредитованию Рефераты по естествознанию Рефераты по истории техники Рефераты по журналистике Рефераты по зоологии Рефераты по инвестициям Рефераты по информатике Исторические личности Рефераты по кибернетике Рефераты по коммуникации и связи |
Учебное пособие: Многопоточность и работа с потокамиУчебное пособие: Многопоточность и работа с потокамиФакультет "Информатика и системы управления" Методические указания к лабораторной работе по курсу "Распределенные системы обработки информации" Многопоточность Москва 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. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™. 2. Официальный сайт Java — http://java.sun.com/ (есть раздел на русском языке с учебником). 3. Java™ 2 SDK, Standard Edition Documentation — http://java.sun.com/products/jdk/1.5/index.html. 4. Джеймс Гослинг, Билл Джой, Гай Стил. Спецификация языка Java (The Java Language Specification — http://www.javasoft.com/docs/books/jls/). Перевод на русский язык http://www.uni-vologda.ac.ru/java/jls/index.html 5. Официальный сайт проекта Eclipse — http://www.eclipse.org/. Другое: 1. Дмитрий Рамодин. Начинаем программировать на языке Java. 2. Николай Смирнов. Java 2: Учебное пособие. 3. Картузов А. В. Программирование на языке Java. 4. Вязовик Н.А. Программирование на Java. 5. Алексей Литвинюк. Введение в интегрированную среду разработки Eclipse — http://lib.juga.ru/article/articleview/174/1/69/. Приложение 1. Графические примитивы При создании компонента автоматически формируется его графический контекст. В контексте размещается область рисования и вывода текста и изображений. Контекст содержит текущий и альтернативный цвет рисования и цвет фона — объекты класса Color, текущий шрифт для вывода текста объект класса Font. В контексте определена система координат, начало которой с координатами (0, 0) расположено в верхнем левом углу области рисования, ось Ох направлена вправо, ось Оу вниз. Координаты измеряются в пикселях. Управляет контекстом класс Graphics или новый класс Graphics2D, введенный в Java 2. Поскольку графический контекст сильно зависит от конкретной графической платформы, эти классы сделаны абстрактными. Поэтому нельзя непосредственно создать экземпляры класса Graphics или Graphics2D. Однако каждая виртуальная машина Java реализует методы этих классов, создает их экземпляры для компонента и предоставляет объект класса Graphics методом getGraphics() класса Component или как аргумент методов paint() и update(). Посмотрим сначала, какие методы работы с графикой и текстом предоставляет класс Graphics. Методы класса GraphicsПри создании контекста в нем задается текущий цвет для рисования, обычно черный, и цвет фона области рисования — белый или серый. Изменить текущий цвет можно методом setColor (Color newColor), аргумент newColor которого — объект класса Color. Узнать текущий цвет можно методом getColor (), возвращающим объект класса Color. Как задать цветЦвет, как и все в Java, — объект определенного класса, а именно, класса Color. Основу класса составляют семь конструкторов цвета. Самый простой конструктор: Color(int red, int green, int blue) создает цвет, получающийся как смесь красной red, зеленой green и синей blue составляющих. Эта цветовая модель называется RGB. Каждая составляющая меняется от 0 (отсутствие составляющей) до 255 (полная интенсивность этой составляющей). Например: Color pureRed = new Color(255, 0, 0); Color pureGreen = new Color(0, 255, 0); определяют чистый ярко-красный pureRed и чистый ярко-зеленый pureGreen цвета. Во втором конструкторе интенсивность составляющих можно изменять более гладко вещественными числами от 0.0 (отсутствие составляющей) до 1.0 (полная интенсивность составляющей): Color(float red, float green, float blue) Например, Color someColor = new Color(O.OSf, 0.4f, 0.95f); Третий конструктор Color(int rgb) задает все три составляющие в одном целом числе. В битах 16—23 записывается красная составляющая, в битах 8—15 — зеленая, а в битах 0—7 — синяя составляющая цвета. Например, Color с = new Color(OXFF8F48FF); Здесь красная составляющая задана с интенсивностью 0x8F, зеленая — 0x48, синяя — 0xFF. Следующие три конструктора Color(int red, int green, int blue, int alpha) Color(float red, float green, float blue, float alpha) Color(int rgb, boolean hasAlpha) вводят четвертую составляющую цвета, так называемую "альфу", определяющую прозрачность цвета. Эта составляющая проявляет себя при наложении одного цвета на другой. Если альфа равна 255 или 1.0, то цвет совершенно непрозрачен, предыдущий цвет не просвечивает сквозь него. Если альфа равна 0 или 0.0, то цвет абсолютно прозрачен, для каждого пикселя виден только предыдущий цвет. Последний из этих конструкторов учитывает составляющую альфа, находящуюся в битах 24—31, если параметр hasAlpha равен true. Если же hasAlpha равно false, то составляющая альфа считается равной 255, независимо от того, что записано в старших битах параметра rgb. | |