КУРСОВАЯРАБОТА
ИспользованиеJAVA-технологий для разработкиграфических приложений
СОДЕРЖАНИЕ
Введение
1. Инструменты
2. Разработки
2.1. Разработки Java 2D
2.2. Разработки Java 3D
2.3. Разработки 3D Paint
3. Заключение…
Список используемой литературы
Приложение
ВВЕДЕНИЕ
Последниенесколько лет разработчики прилагали массу усилий, чтобы интегрировать графикуи анимацию в свои апплеты и приложения Java. Однако первоначально включенные в Java графические пакеты AWT Java имели ограниченные средства для решения таких задач.Теперь же, используя интерфейсы прикладного программирования Java 2D и Java 3D, разработчики могут реализовыватьгораздо более сложные графические приложения, включая игры, хранители экрана,экранные заставки и трехмерный графический пользовательский интерфейс.
Цельработы. Целью моейкурсовой работы является разработка собственного графического редактора длярисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладногопрограммирования Java 2D и Java 3D.
Программноеобеспечение я назвал 3D Paint.
Актуальность.На сегодняшний деньграфика имеет немаловажное значение для языков программирования. Онапозволяет визуализировать любые программы, что придает яркость и удобство дляиспользования тех или иных программ. Позволяет создавать яркие и интересные Web-страницы, удобна при разработке базданных, написании мобильных и компьютерных игр.
Так как мыживем в трехмерном мире, то программирование трехмерной графики на сегодняшнийдень является актуальной и разработчики языков программирования не могутоставить эту тему в стороне.
Начнем срассмотрения некоторых графических возможностей Java 2D и Java 3D. Далее рассмотрим созданныйграфический редактор 3D Paint.
1. ИНСТРУМЕНТЫ
Для написания курсовойработы использовались следующие программы:
1. Язык программирования Java с версией jdk1.6.0.
2. Инструмент длясоздания трехмерной графики на Java –Java3D с версией 1.5.1.
3. Платформа,интегрированная под Java — NetBeans IDE 6.0.
2. РАЗРАБОТКИ
2.1. Разработки Java2D
Программы, тесно взаимодействующиес пользователем, воспринимающие сигналы от клавиатуры и мыши, работают вграфической среде. Каждое приложение, предназначенное для работы в графическойсреде, должно создать хотя бы одно окно, в котором будет происходить егоработа, и зарегистрировать его в графической оболочке операционной системы,чтобы окно могло взаимодействовать с операционной системой и другими окнами:перекрываться, перемещаться, менять размеры, сворачиваться в ярлык.
В технологии Java графика осложняется тем, что приложенияJava должны работать в любой или хотя быво многих графических средах. Нужна библиотека классов, независимая отконкретной графической системы. В первой версии JDK задачу решили следующим образом: были разработаныинтерфейсы, содержащие методы работы с графическими объектами. Классыбиблиотеки AWT реализуют эти интерфейсы длясоздания приложений. Приложения Javaиспользуют данные методы для размещения и перемещения графических объектов,изменения их размеров, взаимодействия объектов.
Библиотека классов Java,основанных на peer-интерфейсах, получила название AWT (Abstract Window Toolkit). При выводе объекта, созданного в приложении 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% PureJava», наряду с 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
Возможности Java 2D
В системе пакетов иклассов Java 2D, основа, которой— класс Graphics2D пакета java.awt, имеетсянесколько принципиально новых положений.
— Кромекоординатной системы, принятой в классе Graphics и названной координатнымпространством пользователя (User Space), введена еще система координатустройства вывода (Device Space): экрана монитора, принтера. Методы классаGraphics2D автоматически переводят (transform) систему координат пользователя всистему координат устройства при выводе графики.
— Преобразованиекоординат пользователя в координаты устройства можно задать«вручную», причем преобразованием способно служить любое аффинноепреобразование плоскости, в частности, поворот на любой угол и/илисжатие/растяжение. Оно определяется как объект класса AffineTransform. Егоможно установить как преобразование по умолчанию методом setTransform().Возможно выполнять преобразование «на лету» методами transform иtranslate и делать композицию преобразований методом concatenate().
— Посколькуаффинное преобразование вещественно, координаты задаются вещественными, а нецелыми числами.
— Графическиепримитивы: прямоугольник, овал, дуга и др., реализуют теперь новый интерфейсshape пакета java.awt. Для их вычерчивания можно использовать новый единый длявсех фигур метод draw, аргументом которого способен служить любой объект, реализовавшийинтерфейс shape. Введен метод fill, заполняющий фигуры— объекты класса,реализовавшего интерфейс shape.
— Для вычерчивания(stroke) линий введено понятие пера (реп). Свойства пера описывает интерфейсstroke. Класс Basicstroke реализует этот интерфейс. Перо обладает четырьмяхарактеристиками:
Ø оно имеет толщину(width) в один (по умолчанию) или несколько пикселей;
Ø оно можетзакончить линию (end cap) закруглением — статическая константа CAP_ROUND,прямым обрезом — CAP_SQUARE (по умолчанию), или не фиксировать определенныйспособ окончания — CAP_BUTT;
Ø оно можетсопрягать линии (line joins) закруглением — статическая константа JOIN_ROOND,отрезком прямой — JOIN_BEVEL, или просто состыковывать — JOIN_MITER (поумолчанию);
Ø оно может чертитьлинию различными пунктирами (dash) и штрих-пунктирами, длины штрихов ипромежутков задаются в массиве, элементы массива с четными индексами задаютдлину штриха, с нечетными индексами — длину промежутка между штрихами.
— Методы заполненияфигур описаны в интерфейсе Paint. Три класса реализуют этот интерфейс. Классcolor реализует его сплошной (solid) заливкой, класс GradientPaint —градиентным (gradient) заполнением, при котором цвет плавно меняется от однойзаданной точки к другой заданной точке, класс Texturepaint — заполнением попредварительно заданному образцу (pattern fill).
— Буквы текстапонимаются как фигуры, т. е. объекты, реализующие интерфейс shape, и могутвычерчиваться методом draw с использованием всех возможностей этого метода. Приих вычерчивании применяется перо, все методы заполнения и преобразования.
— Кроме имени,стиля и размера, шрифт получил много дополнительных атрибутов, например,преобразование координат, подчеркивание или перечеркивание текста, вывод текстасправа налево. Цвет текста и его фона являются теперь атрибутами самого текста,а не графического контекста. Можно задать разную ширину символов шрифта,надстрочные и подстрочные индексы. Атрибуты устанавливаются константами классаTextAttribute.
— Процессвизуализации (rendering) регулируется правилами (hints), определенными Константамикласса RenderingHints.
С такими возможностямиJava 2D стала полноценной системой рисования, вывода текста и изображений.
2.2. Разработки Java3D
Мы живемв трехмерном мире. Наше зрение позволяет нам видеть в трех измерениях скоординатами x, yи z. Многие из поверхностей, на которых отображаетсяграфика, — например, экраны мониторов или листы бумаги — являются плоскими.Программирование трехмерной графики позволяет нам воспроизводить реалистичныемодели нашего объемного мира на поверхностях в двухмерном виде. Трехмернаяграфика имеет преимущества в том смысле, что практически все, что вы можетевидеть вокруг, можно моделировать — цифровым образом представить форму иразмеры, а также отобразить — нарисовать на экране компьютера.
Внастоящее время существует большое число приложений, позволяющих работать стрехмерной графикой — от игр и медицинского оборудования до трехмерных игр ихранителей экранов. Достижения в области компьютерного аппаратного обеспеченияпривели к значительному росту интереса к трехмерной графике. Успех в созданиивысокопроизводительного аппаратного обеспечения способствовали разработкамвысокоэффективных интерфейсов прикладного программирования трехмерной графики —от созданного в 70-х годах API CORE от Siggraph и создания в 80-х годах прошлоговека OpenGLкомпанией SGI, до сегодняшних средств программирования трехмернойграфики, включая Microsoft DirectSDи Java3D.
Трехмернаяграфика требует графических алгоритмов, использующих сложный математическийаппарат. Java3D предоставляет разработчикам надежныеи развитые возможности для работы с трехмерной графикой, в то же время оставляяза сценой математику, необходимую для реализации графических алгоритмов. Java 3D — это высокоуровневый API программирования трехмерной графики.Java 3D управляет всеми необходимыминизкоуровневыми операциями для работы с графикой, поэтому разработчики могутсоздавать сложные трехмерные сцены, не задумываясь об используемом аппаратномобеспечении. Подобно Java,код Java 3D, будучи написанным, однажды,работает повсеместно. Приложения Java 3D будут работать аналогичным образом на различныхграфических платформах.
Sun Microsystems разрабатывала Java 3D API, имея в виду четыре основные цели: переносимостьприложений, независимость от аппаратного обеспечения, масштабированиепроизводительности и способность работать с трехмерной графикой через сеть.Упрощение сложных графических операций играло ключевую роль при разработке Java 3D API. Вот некоторые области и сферы применения API Java 3D:
•визуализация трехмерных данных,
•взаимодействующие между собой приложения,
•игры (особенно сетевые с несколькими участниками),
•деловая графика,
•интерактивные обучающие системы,
•моделирование и визуализация молекулярных структур,
•разработка трехмерных Web-приложений,
•разработка трехмерных графических пользовательских интерфейсов.
Java 3D предлагаетнесколько функциональных возможностей, которые могут использоваться дляразработки трехмерных графических приложений:
•Поведения. Java3D поддерживает множество поведений, включая анимацию и перемещение, обнаружениестолкновений (выявление, когда два объекта сталкиваются) и морфинг(трансформацию одного изображения в другое изображение).
•Вуалирование. Java3D поддерживает вуалирование содержимого, что ограничивает возможностьпросмотра определенных объектов в сцене. Например, вуалирование помогаетсоздать реалистичную модель ливня или урагана в игре.
•Геометрия. Java3D имеет встроенные трехмерные графические примитивы для созданиягеометрических фигур. В Java3D можно отображать сцены, созданные в других приложениях трехмерной графики,например, SDStudio Мах, VRML и LightwaveSD.
•Освещение. Java3D позволяет освещать объекты трехмерной сцены. Java 3D поддерживает различные виды освещения и управленияего цветом, направлением и интенсивностью.
•Звук. Уникальной особенностью Java 3D является поддержка SD-звука.
• Текстуры.Java 3D поддерживает наложение текстур наповерхности трехмерных фигур.
СценыJava3D.
Изображения,отображаемые с помощью Java3D, называют сценами. Сцену также называют виртуальной вселенной – этотрехмерное пространство, которое содержит набор фигур. Корнем сцены Java 3D является объект VirtualUniverse. Объект VirtualUniverse имеет систему координат дляместоположения графов сцены, которые она содержит. Каждая трехмерная сцена Java3D описывается рядом графов сцены – иерархических структур, которые задаютатрибуты трехмерной среды. Каждый граф сцены прикреплен к объекту VirtualUniverse в определенной точке системыкоординат виртуальной системы. Граф сцены состоит из внутренней системыкоординат и графов – ветвей. Каждый граф сцены имеет внутреннюю системукоординат. Класс Locale является корневым узлом графа сцены исодержит вложенные системы координат для виртуальной вселенной и рядграфов-ветвей. В Java 3D имеетсядва типа графов-ветвей: графы-ветви содержимого и графы-ветви представления. Графы-ветвисодержимого задают содержимое в трехмерных сценах, включая геометрию, освещение,текстуры, вуалирование и поведение. Графы-ветви представления содержат платформынаблюдения — коллекции объектов, которые определяют перспективу, позицию,ориентацию и масштаб в трехмерных сценах. Платформу наблюдения также называют точкойзрения.
Класс SceneGraphObjectJava 3D — базовый класс для всех объектовв графе-ветви. Объект SceneGraphObject может содержать группу Group, которая представляет собой узел, содержащиймножество дочерних узлов. Дочерними узлами группы Group могут быть группы (объект Group), листья (объект Leaf) или узлы-компоненты (объект NodeComponents). Узлы-листья Leaf задают геометрию, освещение и звук вграфах-ветвях содержимого и компоненты платформы наблюдения в графе-ветвипредставления. Объекты NodeComponent задают различные компоненты в объектах Group и Leaf,такие как текстура и атрибуты цвета.
Вследующей таблице приведены некоторые подклассы классов Group, Leaf и Node-Component:
Класс
Описание
Частичный список классов класса GroupJava3D BranchGroup Корневой узел (объект Node) графа сцены, который вложен в класс Locale Switch Может отображать либо один дочерний узел, либо несколько дочерних узлов, задаваемых маской TransformGroup Содержит преобразование (например, перемещение, вращение или масштабирование)
Частичный список классов класса Leaf Behavior
Содержит методы для получения пользовательского ввода (например,
нажатие клавиш и щелчков мышью), а также методы, которые описывают поведение объекта при определенных событиях (например, при столкновениях) Light Описывает набор параметров источников освещения Java 3D Shape3D Описывает трехмерные геометрические объекты ViewPlatform Управляет точкой наблюдения трехмерной сцены
Частичный список классов класса NodeComponent Appearance Задает атрибуты объекта Shape3D, такие как цвет и текстура Material Описывает свойства освещенного объекта (например, отраженный цвет. /> /> />
Таблица 2. Основныеметоды подкласса классов Group, Leafи Node-Component
2.3.Разработки 3DPaint
В даннойработе я создал графический редактор 3D Paint.
Идееймоего проекта является использование двухмерной и трехмерной графики на Java для создания удобного имногофункционального графического редактора.
Дляреализации проекта мне потребовалась изучить подробно графику на Java и разработки вышеперечисленныхпрограммных интерфейсов Java 2D и Java 3D.
На первомэтапе я создал саму визуальную оболочку (каркас графического редактора);трехмерные фигуры: «цветной куб», «цилиндр», «сфера», «параллелепипед», «конус»и создание трехмерного текста, с возможностью изменение типа шрифта, размера истиля; панель изменения цвета для фигур и для фона, где размещаются фигуры.
Навтором этапе я планирую создать панель с двухмерной графикой, которая будетрисовать: линии, прямоугольники, треугольники и другие элементы, с возможностьюизменения цвета, затирания, трансформации. Также я хочу связать трехмерную идвухмерную графику для создания общих проектов, таких как дизайн трехмерного объектаили обычное рисование графических картинок.
В началапроекта, используя программное обеспечение NetBeans IDE 6.0, я создал так называемый каркас приложения (Рис 1).Он позволяет управлять, созданными фигурами трехмерной графики. Все кнопки ипанели (меню, управления) находятся в пакетах SWING и AWT.
/>
Рис 1.Графический редактор 3DPaint
На левойпанели приложения располагаются кнопки с фигурами, на нижней панели кнопкиуправления этими фигурами, центральная панель отображает фигуры и действия надними. Панели расположены при помощи раскладчика BorderLayout (раскладчик по сторонам света). Акнопки на этих панелях располагаются при помощи раскладчика FreeDesignLayout.
Далеесоздал примитивные геометрические фигуры, используя библиотекуcom.sun.j3d.utils.geometry. Класс geometry хранит в себе трехмерные фигуры: cylinder, box, cube, sphere, cone.
Напримердля создания трехмерной фигуры «Цилиндр» используется следующий код:
Cylinder CylinderObj = new Cylinder(0.7f, 1.4f, ap);
objTrans.addChild(CylinderObj);
где 0.7f и 1.4f это размерфигуры (ширина и длина).
Фигураможет выполнять следующие действия:
MouseRotate behavior = new MouseRotate(objTrans);
objTrans.addChild(behavior);
behavior.setSchedulingBounds(bounds);
— вращение при помощи левой кнопки мыши.
MouseZoom behavior2 = new MouseZoom(objTrans);
objTrans.addChild(behavior2);
behavior2.setSchedulingBounds(bounds);
— изменение размера фигуры при помощи колесика мыши (трансформация).
orbit = newOrbitBehavior(c, OrbitBehavior.REVERSE_ALL |
OrbitBehavior.STOP_ZOOM);
BoundingSphere bounds =new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
orbit.setSchedulingBounds(bounds);
viewingPlatform.setViewPlatformBehavior(orbit);
— перетаскивание фигурыпо рабочей области при помощи правой кнопки мыши.
Transform3D yAxis = newTransform3D();
Alpha rotationAlpha = newAlpha(-1, 10);
RotationInterpolatorrotator = new RotationInterpolator(rotationAlpha, objTrans, yAxis, 0.0f,(float) Math.PI*-2.0f);
BoundingSphere bounds1 =new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
rotator.setSchedulingBounds(bounds1);
objRoot.addChild(rotator);
— вращение трехмернойфигуры. С помощью этого кода можно задавать скорость вращения и направлениевращения фигуры (по часовой или против часовой стрелки).
Для создания трехмерноготекста используется класс Font3D из библиотеки javax.media.j3d. КлассFont3D содержит в себе методы задания имени трехмерного текста, типатекста (жирный, курсив, подчеркнутый), размера. К трехмерному тексту, как и кдругим трехмерным объектам можно применять выше перечисленные действия:вращение, перемещение и трансформацию.
Также в программе естьвозможность управления цветом. Можно менять как цвет фона, так и цвет самоготрехмерного объекта. Управление цветом осуществляется при помощи класса ColorChooser из пакета javax.swing.Цвет можно менять с помощью разных систем задания цвета. ColorChooser содержит три системы RGB, HSB и Swatches.
Для удобства в программесоздана панель меню, содержащая меню-бар «Файл» и «Справка» из класса JMenyBar. А меню-бар содержит вкладки «Выход»и «О 3DPaint» из класса JMeny.
При нажатии на вкладку вменю «О 3DPaint» выходит диалоговая панель,принадлежащая пакету javax.swing, содержащая информацию о программномобеспечении, версии и создателе.
ЗАКЛЮЧЕНИЕ
Этим завершается нашерассмотрение графики на Java.В этой работе мы представили краткий обзор средств программирования трехмернойи двухмерной графики на Java. Мы показали, что эффективность, расширяемость ипростота Java 3D делает этот интерфейс прикладного программирования отличнымвыбором для разработчиков, стремящихся встроить в свои приложения трехмернуюграфику. Мы представили приложение, которое демонстрируют использованиегеометрических фигур, текстур, освещения и поведений в Java 3D.
Мы обсудили некоторые графические возможности Java. Мы начали с краткого знакомства сфундаментальными основами графики, такими как системы координат и графическиеконтексты. Затем мы обсудили средства Java 2D. Мы также вкратце рассказали, какиспользовать графические эффекты.
Вторая половина нашего знакомства с графическимпрограммированием касалась Java3D. Используя классы Java3D и Java 2D мы создали простой графический редактор 3D Paint, который дает возможность пользователю изменятьсвойства сцены Java 3D, включаяманипулирование трехмерными объектами (вращение, масштабирование и перемещение)с помощью мыши и изменение освещения сцены.
СПИСОК ИСПОЛЬЗУЕМОЙЛИТЕРАТУРЫ
1. Х. М. Дейтел, П.Дж. Дейтел, С.И.Сантри — Технологии программирования на Java, книга 1 (графика, JAVABEANS, интерфейс пользователя)
2. Джуди Бишоп — Эффективная работа Java
3. James Gosling, BillJoy, Guy Steele, Gilad Bracha — The Java Language Specification, SecondEdition.
4. Tim Lindholm, FrankYellin — The Java Virtual Machine Specification, Second Edition.
5. Гослинг Дж., Арнольд К. — Язык программирования Java
6. Информация с сайта www.infocom.uz
7. Информация с официального сайта Java www.java.sun.com