double arrow

РАЗРАБОТКА АППЛЕТОВ, РАБОТА С ГРАФИКОЙ


ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ СЕТЕВЫХ ПРИЛОЖЕНИЙ: ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA

 

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

для студентов специальностей

I-27 01 01 «Экономика и организация производства»,

I-26 02 03 «Маркетинг»

дневной формы обучения

 

 

В 2-х частях

 

Часть 2

 

Минск 2008


УДК 681.3.061(075.8)

ББК 32.973.26-018.1 я 73

Я 41

 

 

Р е ц е н з е н т:

зав. кафедрой интеллектуальных информационных технологий

Белорусского государственного университета информатики и

радиоэлектроники, д-р техн. наук, проф. В. В. Голенков

 

А в т о р ы:

Т.М. Унучек, Д. А. Сторожев, Е.Н. Унучек,

В.Н. Комличенко, Д.С. Марудов, А.А. Тарасевич

 

Языкипрограммирования для разработки сетевых приложений:

Я 41 язык  программирования JAVA: лаб.  практикум    для студ. спец. I - 27 01 01  «Экономика    и  организация    производства»,  I - 26 02 03 «Маркетинг». В 2 ч. Ч. 2 / Т. М. Унучек [и др.]. – Минск : БГУИР, 2008. –     62 с.

ISBN 978-985-444-910-4 (ч. 2)

 

В лабораторном практикуме излагаются основы платформно-независимого объектно-ориентированного языка программирования Java 2, приведено описание основных его библиотек и классов.




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

 

 Часть 1 вышла в БГУИР в 2007 г.

 


УДК 681.3.061(075.8)

ББК 32.973.26-018.1 я 73

ISBN978-985-444-910-4 (ч. 2)     © УО «Белорусский государственный университет                                  ISBN978-985-488-081-5 информатики и радиоэлектроники», 2008



СОДЕРЖАНИЕ

 

Введение ……………………………………………………………………... 5
Лабораторная работа №1. Разработка апплетов, работа с графикой… 6
Пакет AWT………………………………………………………………… 6
Класс Applet……………..…………………….…………………………….. 7
Инициализация и завершение апплета…………………………………….. 8
Запуск апплетов……………………………………………………………… 9
Рисование линий в апплете ………………………………………………… 10
Рисование прямоугольников в апплете………………………………….. 10
Рисование эллипсов и кругов в апплете…………………………………. 10
Рисование дуг в апплете…………………………………………………….. 11
Работа с цветом……………………………………………………………… 11
Задания для самостоятельного выполнения……………………………….. 15
Лабораторная работа №2. Разработка апплетов с использованием потоков и их синхронизации………………………………………………..   16
Многопоточное программирование……………………….……………… 17
Приоритеты потоков………………………………………………………… 17
Класс Thread. Интерфейс Runnable………………………………………. 17
Создание потоков. Жизненный цикл потока………………………………. 18
Синхронизация потоков…………………………………………………... 19
Задания для самостоятельного выполнения……………………………...... 30
Лабораторная работа №3. Разработка пользовательского интерфейса с использованием фреймов, элементов управления…………………….   32
События………………………………………………………………………. 32
Классы событий…………………………………………………………… 32
Класс ActionEvent ………………………………………………………… 33
FocusEvent ………………….……………………………………………… 34
ItemEvent …………………………………………………………………...... 34
KeyEvent……………………………………………………………………… 34
MouseEvent……………..…………………………………………………… 35
TextEvent…………………………………………………………………… 35
WindowEvent…………………………………………………………………. 36
Элементы-источники событий…………………………………………… 36
Интерфейсы прослушивания событий……………………………………... 37
Классы пакета AWT: Component, Window, Frame……………………..... 38
Элементы управления Label, Button, Checkbox, Choice, List, Scrollbar…. 40
Элементы управления TextField и TextArea………………………………. 44
Диалоговые окна…………………………………………………………….. 47
Задания для самостоятельного выполнения……………………………….. 50
Лабораторная работа №4. Разработка пользовательского интерфейса для работы с базой данных…………………………………………………   53
Интерфейс JDBC…………………………………………………………….. 53
Типы драйверов в JDBC…………………………………………………….. 56
Последовательность работы с БД…………………………………………... 56
Задания для самостоятельного выполнения……………………………….. 62
Список использованных источников ……………………………………. 64

 







ВВЕДЕНИЕ

 

Лабораторный практикум является второй частью лабораторного цикла работ по курсу «Языки программирования для разработки сетевых приложний: язык программирования JAVA». В первой части лабораторного практикума  рассматривались особенности разработки консольных приложений, в частности консольный ввод/вывод, работа с файлами, сетевая организация взаимодействий приложений (консольный тип приложения с использованием протоколв взаимодействия TCP и UDP). Во второй части лабораторного практикума рассматриваются особенности графических возможностей Java, разработки апплетов, создания графического пользовательского интерфейса (GUI) с использованием фреймов и элементов управления. Особое внимаение уделено особенностям создания, организации работы и синхронизации потоков. Раскрыты основные принципы работы с базами данных.

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

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

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



ЛАБОРАТОРНАЯ РАБОТА №1

РАЗРАБОТКА АППЛЕТОВ, РАБОТА С ГРАФИКОЙ

 

Цель: Научиться создавать приложения с использованием апплетов.

 

Как известно на Java можно создавать два типа приложений: приложения и апплеты. В предшествующих лабораторных работах №№1-4 показывался пример листинга кода Java-приложений. Другой тип программ представлен апплетом. Апплеты – это небольшие приложения, которые доступны на Internet-сервере, транспортируются по Internet, автоматически устанавливаются и выполняются как часть Web-документа. После того как апплет прибывает к клиенту, он имеет ограниченный доступ к ресурсам системы, которые использует для создания произвольного мультимедийного интерфейса пользователя и выполнения комплексных вычислений без риска заражения вирусами или нарушения целостности данных. Работа с апплетами поддерживается пакетом AWT. Этот пакет достаточно большой, что позволяет работать не только с апплетами. Пакет AWT содержит многочисленные классы и методы, которые позволяют создавать окна и управлять ими.

Рассмотрим более подробно указанный пакет AWT.

 

Пакет AWT

AWTAbstract Window Toolkit – абстрактный оконный интерфейс. Основное назначение  пакета  AWT:  поддержка  окон  апплета  и  создание  обычных

GUI-приложений. Классы пакета AWT определяют интерфейсные окна и работу с визуальными компонентами окон и содержатся в пакете java.awt.

На рис. 1.1 представлен фрагмент иерархии классов AWT. Практически все классы пакета AWT являются потомками абстрактного класса Component.

 

Рис. 1.1. Фрагмент иерархии классов AWT

 

Рассмотрим особенности программирования апплетов. В последних лабораторных работах рассмотрим более подробно другие классы пакета AWT.

 

Класс Applet

Для работы с апплетами предназначен класс Applet, который  определяет методы, представленные в табл. 1.1. Applet обеспечивает всю необходимую поддержку для выполнения апплетов, такую как запуск и остановка. Он также реализует методы, которые загружают и показывают изображения, и методы, которые загружают и проигрывают аудио-клипы.

Таблица 1.1

Методы, определенные в классе Applet

 

Метод 1 Описание 2
void destroy() Освобождает все ресурсы, занятые апплетом. Вызывается браузером непосредственно перед тем, как апплет завершается. Метод destroy() вызывается, когда среда решает, что апплет должен быть полностью удален из памяти. В этот момент следует освободить любые ре­сурсы, которые апплет может использовать.
String getParameter(String paramName) Возвращает параметр, указанный в paramName. Если указанный параметр не найден, возвращается null (пустой указатель)

 

Окончание табл. 1.1

1 2
void init() Вызывается, когда апплет начинает выполнение. Это первый метод, который вызывается для любого апплета. В нем необходимо инициализировать переменные. Вызывается этот метод один раз в течение времени выполнения апплета.
boolean isActive()   Возвращает true, если апплет был запущен. Возвращает false, если апплет был остановлен
void resize(Dimension dim) Изменяет размеры апплета согласно измерениям, указанным в dim
void start() Вызывается, чтобы перезапустить апплет после его остановки. В то время как init() вызывается один раз (когда апплет загружается), start() запускается каждый раз, когда HTML-документ апплета отображается на экране. Так, если поль­зователь покидает Web-страницу и возвращается обратно, апплет возобновляет выполнение в start().
void stop() Метод stop() вызывается, если Web-браузер покидает HTML-документ, содержащий апплет, при переходе к другой странице. Когда вызывается stop(), апплет, вероятно, продолжает выполняться. Следует использовать stop() для приостановки потоков, не требующих выполнения, если апплет невидим. Их можно перезапустить вызывом start(), когда пользователь возвращается к странице. Метод stop() всегда вызывается перед destroy().

 







Сейчас читают про: