Смекни!
smekni.com

Использование JAVA технологий для разработки графических приложений (стр. 1 из 3)

КУРСОВАЯ РАБОТА

Использование JAVA-технологий для разработки графических приложений

СОДЕРЖАНИЕ

Введение

1. Инструменты

2. Разработки

2.1. Разработки Java 2D

2.2. Разработки Java 3D

2.3. Разработки 3D Paint

3. Заключение…

Список используемой литературы

Приложение

ВВЕДЕНИЕ

Последние несколько лет разработчики прилагали массу усилий, чтобы интегрировать графику и анимацию в свои апплеты и приложения Java. Однако первоначально включенные в Java графические пакеты AWTJava имели ограниченные средства для решения таких задач. Теперь же, используя интерфейсы прикладного программирования Java 2Dи Java 3D, разработчики могут реализовывать гораздо более сложные графические приложения, включая игры, хранители экрана, экранные заставки и трехмерный графический пользовательский интерфейс.

Цель работы. Целью моей курсовой работы является разработка собственного графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2Dи Java 3D.

Программное обеспечение я назвал 3DPaint.

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

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

Начнем с рассмотрения некоторых графических возможностей Java 2D и Java 3D. Далее рассмотрим созданный графический редактор 3DPaint.

1. ИНСТРУМЕНТЫ

Для написания курсовой работы использовались следующие программы:

1. Язык программирования Javaс версией jdk1.6.0.

2. Инструмент для создания трехмерной графики на Java – Java3Dс версией 1.5.1.

3. Платформа, интегрированная под Java - NetBeansIDE 6.0.

2. РАЗРАБОТКИ

2.1. Разработки Java 2D

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

В технологии Java графика осложняется тем, что приложения Java должны работать в любой или хотя бы во многих графических средах. Нужна библиотека классов, независимая от конкретной графической системы. В первой версии JDK задачу решили следующим образом: были разработаны интерфейсы, содержащие методы работы с графическими объектами. Классы библиотеки AWT реализуют эти интерфейсы для создания приложений. Приложения Java используют данные методы для размещения и перемещения графических объектов, изменения их размеров, взаимодействия объектов.

Библиотека классов Java, основанных на peer-интерфейсах, получила название AWT (Abstract WindowToolkit). При выводе объекта, созданного в приложении Java и основанного на peer-интерфейсе, на экран создается парный ему (peer-to-peer) объект графической подсистемы операционной системы, который и отображается на экране.

В версии JDK 1.1 библиотека AWT была переработана. В нее добавлена возможность создания компонентов, полностью написанных на Java и не зависящих от peer-интерфейсов. Такие компоненты стали называть "легкими" (lightweight) в отличие от компонентов, реализованных через peer-интерфейсы, названных "тяжелыми" (heavy).

Была создана обширная библиотека "легких" компонентов Java, названная Swing. В ней были переписаны все компоненты библиотеки AWT, так что библиотека Swing может использоваться самостоятельно, несмотря на то, что все классы из нее расширяют классы библиотеки AWT.

Библиотека классов Swing поставлялась как дополнение к JDK 1.1. В состав Java 2 SDK она включена как основная графическая библиотека классов, реализующая идею "100% Pure Java", наряду с AWT.

В Java 2 библиотека AWT значительно расширена добавлением новых средств рисования, вывода текстов и изображений, получивших название Java 2D, и средств, реализующих перемещение текста методом DnD (Drag and Drop).

Кроме того, в Java 2 включены новые методы ввода/вывода Input Method Framework и средства связи с дополнительными устройствами ввода/вывода, такими как световое перо или клавиатура Бройля, названные Accessibility.

Все эти средства Java 2: AWT, Swing, Java 2D, DnD, Input Method Framework и Accessibility составили библиотеку графических средств Java, названную JFC (Java Foundation Classes).

Компонент и контейнер

Основное понятие графического интерфейса пользователя (ГИП) — компонент (component) графической системы. В русском языке это слово подразумевает просто составную часть, элемент чего-нибудь, но в графическом интерфейсе это понятие гораздо конкретнее. Оно означает отдельный, полностью определенный элемент, который можно использовать в графическом интерфейсе независимо от других элементов. Например, это поле ввода, кнопка, строка меню, полоса прокрутки, радиокнопка. Само окно приложения — тоже его компонент. Компоненты могут быть и невидимыми, например, панель, объединяющая компоненты, тоже является компонентом.

В AWT компонентом считается объект класса Component или объект всякого класса, расширяющего класс component. В классе Component собраны общие методы работы с любым компонентом графического интерфейса пользователя. Этот класс — центр библиотеки AWT.

Каждый компонент перед выводом на экран помещается в контейнер (Container). Контейнер "знает", как разместить компоненты на экране. Разумеется, в языке Java контейнер — это объект класса Container или всякого его расширения. Прямой наследник этого класса — класс JСomponent — вершина иерархии многих классов библиотеки Swing.

Создав компонент — объект класса Component или его расширения, следует добавить его к предварительно созданному объекту класса Container или его расширения одним из методов add ().

Класс Container сам является невидимым компонентом, он расширяет класс Component. Таким образом, в контейнер наряду с компонентами можно помещать контейнеры, в которых находятся какие-то другие компоненты, достигая тем самым большой гибкости расположения компонентов.

Иерархия классов AWT

Иерархию основных классов AWT составляют готовые компоненты: Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Menubar, Menu, PopupMenu, Menultem, CheckboxMenuItem. Если этого набора не хватает, то от класса Canvas можно породить собственные "тяжелые" компоненты, а от класса Component — "легкие" компоненты (используемые в библиотеке Swing).

Основные контейнеры – это классы Panel, ScrollPane, Window, Frame, Dialog, FileDialog. Свои "тяжелые" контейнеры можно породить от класса Panel, а "легкие" — от класса Container.

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

Графические примитивы

При создании компонента, т. е. объекта класса Component, автоматически формируется его графический контекст (graphics context). В контексте размещается область рисования и вывода текста и изображений. Контекст содержит текущий и альтернативный цвет рисования и цвет фона — объекты класса Color, текущий шрифт для вывода текста — объект класса Font.

В контексте определена система координат, начало которой с координатами (0, 0) расположено в верхнем левом углу области рисования, ось Ох направлена вправо, ось Оу — вниз. Точки координат находятся между пикселями.

Управляет контекстом класс Graphics или новый класс Graphics2D, введенный в Java 2. Поскольку графический контекст сильно зависит от конкретной графической платформы, эти классы сделаны абстрактными. Поэтому нельзя непосредственно создать экземпляры класса Graphics или Graphics2D.

Однако каждая виртуальная машина Java реализует методы этих классов, создает их экземпляры для компонента и предоставляет объект класса Graphics методом getGraphics() класса Component или как аргумент методов paint() и update().

Методы класса Graphics

В следующей таблице приведены некоторые методы класса Graphics:

Метод Описание
Работа с цветом
setColor (Color newColor) изменить текущий цвет
getColor () получить текущий цвет
Color(int red, int green, int blue) создает цвет, получающийся как смесь красной red, зеленой green и синей blue составляющих. Эта цветовая модель называется RGB. Каждая составляющая меняется от 0 (отсутствие составляющей) до 255 (полная интенсивность этой составляющей).
Color(float red, float green, float blue) интенсивность составляющих можно изменять более гладко вещественными числами от 0.0 (отсутствие составляющей) до 1.0 (полная интенсивность составляющей)
Color(int rgb) задает все три составляющие в одном целом числе. В битах 16—23 записывается красная составляющая, в битах 8—15 — зеленая, а в битах 0—7 — синяя составляющая цвета.
Работа с чертежами
drawLine(int xl, int yl, int х2, int y2) вычерчивает текущим цветом отрезок прямой между точками с координатами (xl, yl) и (х2, у2).
drawRect(int x, int у, int width, int height) чертит прямоугольник со сторонами, параллельными краям экрана, задаваемый координатами верхнего левого угла (х, у), шириной width пикселей и высотой height пикселей
drawOval(int x, int у, int width, int height) чертит овал, вписанный в прямоугольник, заданный аргументами метода. Если width = height, то получится окружность
drawArc(int x, int у, int width, int height, int startAngle, int arc) чертит дугу овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами.
drawRoundRect (int x, int у, int width, int height, int arcWidth, int arcHeight) чертит прямоугольник с закругленными краями. Закругления вычерчиваются четвертинками овалов, вписанных в прямоугольники шириной arcWidth и высотой arcHeight, построенные в углах основного прямоугольника
drawPolyline(int[] xPoints, int[] yPoints, int nPoints) чертит ломаную с вершинами в точках (xPoints[i], ypoints[i]) и числом вершин nPoints
Работа с текстом
drawstring (String s, int x, int y) выводит строку s
drawBytes(byte[] b, int offset, int length, int x, int у) выводит length элементов массива байтов, начиная с индекса offset
drawChars(chart] ch, int offset, int length, int x, int у) выводит length элементов массива символов ch, начиная с индекса offset
Работа со шрифтами
setFont(Font newFont) устанавливает текущий шрифт для вывода текста
getFont () возвращает текущий шрифт
Font (String name, int style, int size) задает Шрифт ПО имени name, со стилем style и размером size типографских пунктов.

Таблица 1. Основные методы класса Graphics