Class Graphics Объект Graphics инкапсулирует информацию о состоянии, необходимую для базовых операций рендеринга, поддерживаемых Java.
java.lang.Object
java.awt.Graphics
- Прямые известные подклассы:
-
DebugGraphics
,Graphics2D
public abstract class Graphics extends Object
Класс Graphics
является абстрактным базовым классом для всех графических контекстов, которые позволяют приложению рисовать на компонентах, реализованных на различных устройствах, а также на изображениях за пределами экрана.
Объект Graphics
инкапсулирует информацию о состоянии, необходимую для основных операций визуализации, поддерживаемых Java. Эта информация о состоянии включает в себя следующие свойства:
- Объект
Component
, на котором нужно рисовать. - Начало трансляции для координат рендеринга и обтравки.
- Текущий клип.
- Текущий цвет.
- Текущий шрифт.
- Текущая функция логической операции пикселя (XOR или Paint).
- Текущий цвет чередования XOR (см.
setXORMode(java.awt.Color)
).
Координаты бесконечно тонкие и лежат между пикселями устройства вывода.Операции,которые рисуют контур фигуры,выполняются путем прохождения бесконечно тонкого пути между пикселями с помощью пера размером с пиксель,которое свисает вниз и вправо от опорной точки на пути.Операции по заполнению фигуры выполняются путем заполнения внутренней части этого бесконечно тонкого пути.Операции визуализации горизонтального текста отображают восходящую часть глифов символов полностью над базовой координатой.
Графическое перо свисает вниз и вправо от пройденного им пути.Это имеет следующие последствия:
- Если вы рисуете фигуру,которая охватывает заданный прямоугольник,эта фигура занимает один дополнительный ряд пикселей по правому и нижнему краям по сравнению с заполнением фигуры,ограниченной тем же прямоугольником.
- Если провести горизонтальную линию вдоль той жеyкоординаты в качестве базовой линии строки текста,эта линия рисуется полностью под текстом,за исключением всех нисходящих линий.
Все координаты, которые появляются в качестве аргументов для методов этого объекта Graphics
, рассматриваются относительно начала трансляции этого объекта Graphics
до вызова метода.
Все операции рендеринга изменяют только пиксели, которые лежат в пределах области, ограниченной текущим клипом, который задается Shape
в пользовательском пространстве и управляется программой с помощью объекта Graphics
. Этотuser clipпреобразуется в пространство устройства и объединяется сdevice clip, который определяется видимостью окон и границ устройства. Комбинация пользовательского клипа и клипа устройства определяетcomposite clip, который определяет окончательную область отсечения. Пользовательский клип не может быть изменен системой рендеринга для отражения результирующего составного клипа.
setClip
или clipRect
. Все рисования или письма выполняются текущим цветом, с использованием текущего режима рисования и текущего шрифта.- Since:
- 1.0
- See Also:
Component
clipRect(int, int, int, int)
setColor(java.awt.Color)
setPaintMode()
setXORMode(java.awt.Color)
setFont(java.awt.Font)
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
protected | Создает новый объект Graphics . |
Method Summary
Модификатор и тип | Method | Description |
---|---|---|
abstract void | clearRect | Очищает указанный прямоугольник,заполняя его фоновым цветом текущей поверхности рисования. |
abstract void | clipRect | Пересекает текущий клип с указанным прямоугольником. |
abstract void | copyArea | Копирует область компонента на расстояние, указанное |
| create() | Создает новый объект |
Graphics | create | Создает новый объект |
abstract void | dispose() | Утилизирует данный графический контекст и освобождает все используемые им системные ресурсы. |
void | draw3DRect | Рисует трехмерный выделенный контур указанного прямоугольника. |
abstract void | drawArc | Рисует контур круговой или эллиптической дуги,охватывающей указанный прямоугольник. |
void | drawBytes | Рисует текст,заданный указанным массивом байтов,используя текущий шрифт и цвет данного графического контекста. |
void | drawChars | Рисует текст,заданный указанным массивом символов,используя текущий шрифт и цвет данного графического контекста. |
abstract boolean | drawImage | Рисует столько указанной области указанного изображения,сколько доступно в данный момент,масштабируя ее на лету,чтобы она поместилась в указанную область целевой рисуемой поверхности. |
abstract boolean | drawImage | Рисует столько указанной области указанного изображения,сколько доступно в данный момент,масштабируя ее на лету,чтобы она поместилась в указанную область целевой рисуемой поверхности. |
abstract boolean | drawImage | Рисует такую часть указанного изображения,которая уже была масштабирована,чтобы поместиться внутри указанного прямоугольника. |
abstract boolean | drawImage | Рисует такую часть указанного изображения,которая уже была масштабирована,чтобы поместиться внутри указанного прямоугольника. |
abstract boolean | drawImage | Рисует столько указанного изображения,сколько доступно в данный момент. |
abstract boolean | drawImage | Рисует столько указанного изображения,сколько доступно в данный момент. |
abstract void | drawLine | Рисует линию, используя текущий цвет, между точками |
abstract void | drawOval | Рисует контур овала. |
abstract void | drawPolygon | Рисует замкнутый многоугольник,определяемый массивамиxandycoordinates. |
void | drawPolygon | Рисует контур многоугольника, определенного указанным объектом |
abstract void | drawPolyline | Рисует последовательность соединенных линий,определенных массивамиxandycoordinates. |
void | drawRect | Рисует контур указанного прямоугольника. |
abstract void | drawRoundRect | Рисует очерченный прямоугольник с круглыми углами,используя текущий цвет этого графического контекста. |
abstract void | drawString | Рисует текст,заданный указанной строкой,используя текущий шрифт и цвет данного графического контекста. |
abstract void | drawString | Отображает текст указанного итератора, применяя его атрибуты в соответствии со спецификацией класса |
void | fill3DRect | Рисует трехмерный выделенный прямоугольник,заполненный текущим цветом. |
abstract void | fillArc | Заполняет круговую или эллиптическую дугу,охватывающую указанный прямоугольник. |
abstract void | fillOval | Заполняет текущим цветом овал,ограниченный указанным прямоугольником. |
abstract void | fillPolygon | Заполняет замкнутый многоугольник,определенный массивамиxandycoordinates. |
void | fillPolygon | Заполняет полигон,определенный указанным объектом Polygon,текущим цветом графического контекста. |
abstract void | fillRect | Заполняет указанный прямоугольник. |
abstract void | fillRoundRect | Заполняет указанный прямоугольник со скругленными углами текущим цветом. |
void | finalize() | Утратил актуальность,подлежит удалению:Этот элемент API подлежит удалению в будущей версии. Финализация была устаревшей для удаления. |
abstract Shape | getClip() | Получает текущую область обрезки. |
abstract Rectangle | getClipBounds() | Возвращает ограничивающий прямоугольник текущей области обрезки. |
Rectangle | getClipBounds | Возвращает ограничивающий прямоугольник текущей области обрезки. |
Rectangle | getClipRect() | Deprecated. Начиная с версии 1.1 JDK, заменено на |
abstract Color | getColor() | Получает текущий цвет этого графического контекста. |
abstract Font | getFont() | Получает текущий шрифт. |
FontMetrics | getFontMetrics() | Получает метрику текущего шрифта. |
abstract FontMetrics | getFontMetrics | Получает метрики шрифта для указанного шрифта. |
boolean | hitClip | Возвращает true,если указанная прямоугольная область может пересекать текущую область обтравки. |
abstract void | setClip | Устанавливает текущий клип в прямоугольник,заданный заданными координатами. |
abstract void | setClip | Устанавливает текущую область обрезки в произвольную форму клипа. |
abstract void | setColor | Устанавливает текущий цвет этого графического контекста на указанный цвет. |
abstract void | setFont | Устанавливает шрифт этого графического контекста на указанный шрифт. |
abstract void | setPaintMode() | Устанавливает режим закраски данного графического контекста для перезаписи места назначения текущим цветом этого графического контекста. |
abstract void | setXORMode | Устанавливает режим закраски данного графического контекста для чередования текущего цвета этого графического контекста и нового указанного цвета. |
String | toString() | Возвращает объект |
abstract void | translate | Переводит начало координат графического контекста в точку (x,y) в текущей системе координат. |
© 1993, 2022, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian’s OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/19/docs/api/java.desktop/java/awt/Graphics.html
- 1
- …
- 2566
- 2567
- 2568
- 2569
- 2570
- …
- 6528
- Next
Методы,объявленные в классе java. lang.
НОУ ИНТУИТ | Лекция | Пакет java.awt
< Практикум 2 || Лекция 11: 123456
Аннотация: Эта лекция начинает рассмотрение базовых библиотек Java, которые являются неотъемлемой частью языка и входят в его спецификацию, а именно описывается пакет java.awt, предоставляющий технологию AWT для создания графического (оконного) интерфейса пользователя – GUI. Ни одна современная программа, предназначенная для пользователя, не обходится без удобного, понятного, в идеале – красивого пользовательского интерфейса. С самой первой версии в Java существует специальная технология для создания GUI. Она называется AWT, Abstract Window Toolkit. Именно о ней пойдет речь в этой лекции. Пакет java.awt претерпел, пожалуй, больше всего изменений с развитием версий Java. Мы рассмотрим дерево компонентов, доступных программисту, специальную модель сообщений, позволяющую гибко обрабатывать пользовательские действия, и другие особенности AWT – работа с цветами, шрифтами, отрисовка графических примитивов, менеджеры компоновки и т. д. Хотя технология AWT включает в себя гораздо больше, чем можно изложить в рамках одной лекции, здесь собраны все необходимые сведения для создания полноценного оконного интерфейса.
Ключевые слова: Java, GUI, программа, производительность, AWT, Abstract Window Toolkit, слово, abstract, foreground, background, deprecated, monospace, пользовательское событие, radio button, splash screen, дерево, ООП, компонент, объект, event, garbage collector, параметр компонента, HTML, класс, инициализирующие действия, java script, координаты, приложение, пользователь, контейнер, интерфейс, фрейм, площадь, значение, controls, layout managers, место, шрифт, цикла, тег, апплет
Введение
Поскольку Java-приложения предназначены для работы на разнообразных платформах, реализация графического пользовательского интерфейса (GUI) должна быть либо одинаковой для любой платформы, либо, напротив, программа должна иметь вид, типичный для данной операционной системы. В силу ряда причин, для основной библиотеки по созданию GUI был выбран второй подход. Во-первых, это лишний раз показывало гибкость Java – действительно, пользователи разных платформ могли работать с одним и тем же Java-приложением, не меняя своих привычек. Во-вторых, такая реализация обеспечивала большую производительность, поскольку была основана на возможностях операционной системы. В частности, это означало и более компактный, простой, а значит, и более надежный код.
Библиотеку назвали AWT – Abstract Window Toolkit. Слово abstract в названии указывает, что все стандартные компоненты не являются самостоятельными, а работают в связке с соответствующими элементами операционной системы.
Дерево компонентов
Component
Абстрактный класс Component является базовым для всех компонентов AWT и описывает их основные свойства. Визуальный компонент в AWT имеет прямоугольную форму, может быть отображен на экране и может взаимодействовать с пользователем.
Рассмотрим основные свойства этого класса.
Положение
Положение компонента описывается двумя целыми числами (тип int ) x и y. В Java (как и во многих языках программирования) ось x проходит традиционно – горизонтально, направлена вправо, а ось у – вертикально, но направлена вниз, а не вверх, как принято в математике.
Для описания положения компонента предназначен специальный класс – Point (точка). В этом классе определено два public int поля x и y, а также множество конструкторов и вспомогательных методов для работы с ними. Класс Point применяется во многих типах AWT, где надо задать точку на плоскости.
Для компонента эта точка задает положение левого верхнего угла.
Установить положение компонента можно с помощью метода setLocation(), который может принимать в качестве аргументов пару целых чисел, либо Point. Узнать текущее положение можно с помощью метода getLocation(), возвращающего Point, либо с помощью методов getX() и getY(), которые появились с версии Java 1.2.
Размер
Как было сказано, компонент AWT имеет прямоугольную форму, а потому его размер описывается также двумя целочисленными параметрами – width (ширина) и height (высота). Для описания размера существует специальный класс Dimension (размер), в котором определено два public int поля width и height, а также вспомогательные методы.
Установить размер компонента можно с помощью метода setSize, который может принимать в качестве аргументов пару целых чисел, либо Dimension. Узнать текущие размеры можно с помощью метода getSize(), возвращающего Dimension, либо с помощью методов getWidth() и getHeight(), которые появились с версии Java 1.2.
Совместно положение и размер компонента задают его границы. Область, занимаемую компонентом, можно описать либо четырьмя числами ( x, y, width, height ), либо экземплярами классов Point и Dimension, либо специальным классом Rectangle (прямоугольник). Как легко догадаться, в этом классе определено четыре public int поля, с которыми можно работать и в виде пары объектов Point и Dimension.
Задать границу объекта можно с помощью метода setBounds, который может принимать четыре числа, либо Rectangle. Узнать текущее значение можно с помощью метода getBounds(), возвращающего Rectangle.
Видимость
Существующий компонент может быть как виден пользователю, так и быть скрытым. Это свойство описывается булевским параметром visible. Методы для управления – setVisible, принимающий булевский параметр, и isVisible, возвращающий текущее значение.
Разумеется, невидимый компонент не может взаимодействовать с пользователем.
Доступность
Даже если компонент отображается на экране и виден пользователю, он может не взаимодействовать с ним. В результате события от клавиатуры или мыши не будут получаться и обрабатываться компонентом. Такой компонент называется disabled. Если же компонент активен, его называют enabled. Как правило, компонент некоторым образом меняет свой внешний вид, когда становится недоступным (например, становится серым, менее заметным), но, вообще говоря, это необязательно (хотя очень удобно для пользователя).
Для изменения этого свойства применяется метод setEnabled, принимающий булевский параметр ( true соответствует enabled, false – disabled ), а для получения текущего значения – isEnabled.
Цвета
Разумеется, для построения современного графического интерфейса пользователя необходима работа с цветами.
ru/2010/edi»>Компонент обладает двумя свойствами, описывающими цвета, – foreground и background цвета. Первое свойство задает, каким цветом выводить надписи, рисовать линии и т.д. Второе – задает цвет фона, которым закрашивается вся область, занимаемая компонентом, перед тем, как прорисовывается внешний вид.Для задания цвета в AWT используется специальный класс Color. Этот класс обладает довольно обширной функциональностью, поэтому рассмотрим основные характеристики.
Цвет задается 3 целочисленными характеристиками, соответствующими модели RGB, – красный, зеленый, синий. Каждая из них может иметь значение от 0 до 255 (тем не менее, их тип определен как int ). В результате (0, 0, 0) соответствует черному, а (255, 255, 255) – белому.
Класс Color является неизменяемым, то есть, создав экземпляр, соответствующий какому-либо цвету, изменить параметры RGB уже невозможно. Это позволяет объявить в классе Color ряд констант, описывающих базовые цвета: белый, черный, красный, желтый и так далее. Например, вместо того, чтобы задавать синий цвет числовыми параметрами (0, 0, 255), можно воспользоваться константами Color.blue или Color.BLUE (второй вариант появился в более поздних версиях).
Для работы со свойством компонента foreground применяют методы setForeground и getForeground, а для background – setBackground и getBackground.
Шрифт
Раз изображение компонента может включать в себя надписи, необходимо свойство, описывающее шрифт для их прорисовки.
Для задания шрифта в AWT существует специальный класс Font, который включает в себя три параметра – имя шрифта, размер и стиль.
Имя шрифта задает внешний стиль отображения символов. Имена претерпели ряд изменений с развитием Java. В версии 1.0 требовалось, чтобы JVM поддерживала следующие шрифты: TimesRoman, Helvetica, Courier. Могут поддерживаться и другие семейства, это зависит от деталей реализации конкретной виртуальной машины. Чтобы узнать полный список во время исполнения программы, можно воспользоваться методом утилитного класса Toolkit. Экземпляры этого класса нельзя создать вручную, поэтому полностью такой запрос будет выглядеть следующим образом:
Toolkit.getDefaultToolkit().getFontList()
В результате будет возвращен массив строк-имен семейств поддерживаемых шрифтов.
В Java 1.1 три обязательных имени были объявлены deprecated. Вместо них был введен новый список, который содержал более универсальные названия, не зависящие от конкретной операционной системы: Serif, SansSerif, Monospaced.
В Java 2 библиотека AWT была существенно пересмотрена и дополнена. Чтобы устранить неоднозначности с разной поддержкой шрифтов на разных платформах, было произведено разделение на логические и физические шрифты. Вторая группа определяется возможностями операционной системы, это те же шрифты, которые могут использовать другие программы, запущенные на этой платформе.
Первая группа состоит из 5 обязательных семейств (добавились Dialog и DialogInput ). JVM устанавливает соответствие между ними и наиболее подходящими из доступных физических шрифтов.
Метод getFontList класса Toolkit был объявлен deprecated. Теперь получить список всех доступных физических шрифтов можно следующим образом:
GraphicsEnvironment. getLocalGraphicsEnvironment(). getAvailableFontFamilyNames()
Класс Font является неизменяемым. После создания можно узнать заданное логическое имя (метод getName ) и соответствующее ему физическое имя семейства (метод getFamily ).
Вернемся к остальным параметрам, необходимым для создания экземпляра Font. Размер шрифта определяет, очевидно, величину символов. Однако конкретные значения измеряются не в пикселах, а в условных единицах (как и во многих текстовых редакторах). Для разных семейств шрифтов символы одинакового размера могут иметь различную ширину и высоту, измеренную в пикселах.
Как и в случае имени шрифта, программист может указать любое значение размера, а JVM поставит ему в соответствие максимально близкий из доступных.
Наконец, последний параметр – стиль. Этот параметр определяет, будет ли шрифт жирным, наклонным и т.д. Если никакие из этих свойств не требуются, указывается Font.PLAIN (параметр имеет тип int и в классе Font определен набор констант для удобства работы с ним). Значение Font.BOLD задает жирный шрифт, а Font.ITALIC – наклонный. Для сочетания этих свойств (жирный наклонный шрифт) необходимо произвести логическое сложение: Font.BOLD|Font.ITALIC.
intuit.ru/2010/edi»>Для работы с этим свойством класса Component предназначены методы setFont и getFont.Итак, мы рассмотрели основные свойства класса Component. Как легко видеть, все они предназначены для описания графического представления компонента, то есть отображения на экране.
Существует еще одно важное свойство другого характера. Очевидно, что практически всегда пользовательский интерфейс состоит из более чем одного компонента. В больших приложениях их обычно гораздо больше. Для удобства организации работы с ними компоненты объединяются в контейнеры. В AWT существует класс, который так и называется – Container. Его рассмотрение – наша следующая тема. Важно отметить, что компонент может находиться лишь в одном контейнере – при попытке добавить его в другой он удаляется из первого. Рассматриваемое свойство как раз и отвечает за связь компонента с контейнером. Свойство называется parent. Благодаря ему компонент всегда «знает», в каком контейнере он находится.
Дальше >>
< Практикум 2 || Лекция 11: 123456
Документация JDK 19 — Главная
- Главная
- Ява
- Java SE
- 19
Обзор
- Прочтите меня
- Примечания к выпуску
- Что нового
- Руководство по миграции
- Загрузить JDK
- Руководство по установке
- Формат строки версии
Инструменты
- Технические характеристики инструментов JDK
- Руководство пользователя JShell
- Руководство по JavaDoc
- Руководство пользователя средства упаковки
Язык и библиотеки
- Обновления языка
- Основные библиотеки
- HTTP-клиент JDK
- Учебники по Java
- Модульный JDK
- Руководство программиста API бортового регистратора
- Руководство по интернационализации
Технические характеристики
- Документация API
- Язык и ВМ
- Имена стандартных алгоритмов безопасности Java
- банок
- Собственный интерфейс Java (JNI)
- Инструментальный интерфейс JVM (JVM TI)
- Сериализация
- Проводной протокол отладки Java (JDWP)
- Спецификация комментариев к документации для стандартного доклета
- Прочие характеристики
Безопасность
- Руководство по безопасному кодированию
- Руководство по безопасности
Виртуальная машина HotSpot
- Руководство по виртуальной машине Java
- Настройка сборки мусора
Управление и устранение неполадок
- Руководство по устранению неполадок
- Руководство по мониторингу и управлению
- Руководство по JMX
Client Technologies
- Руководство по специальным возможностям Java
G — библиотека двухмерной графики Java
G — библиотека двухмерной графики JavaG — это универсальная графическая библиотека, созданная на основе Java 2D, чтобы сделать граф сцены 2D ориентированным графика, доступная клиентским приложениям в высоком уровень, простой в использовании способ.
- Объектно-ориентированные иерархические графы сцен
- Многоуровневая графика с поддержкой видимости
- Гибкие экстенты трехмерного космического мира
- Поддержка координат мира и устройства
- Мощная поддержка стилей рендеринга
- Смарт-аннотации
- Мощные функции обнаружения объектов
- Расширяемый
- Поддержка взаимодействия
- Поддержка растровых изображений
- Поддержка встроенного компонента Swing
- Утилиты для генерации и преобразования геометрии
- Поддержка экспорта и печати изображений
- Совместимость с JDK 1.2, 1.3, 1.4 и 1.5
- Малый вес (~80 КБ), автономный, простой в использовании
- Бесплатно, с открытым исходным кодом (ЛГПЛ), OSI сертифицирован
Создайте GWindow как графический узел верхнего уровня и свяжите его с Поворотная панель. Добавьте GScene, который определяет область просмотра и мировые масштабы. Создайте иерархию графики с помощью GObjects и добавить на сцену. GObjects состоит из GSegments (полилинии) и другие GОбъекты. Информация о рендеринге предоставляется стиль объекты добавляются на любой уровень графики. Аннотации (GText), растровые изображения (GImage) и компоненты AWT/Swing (GComponent) добавляются в сегменты с указанным подсказки положения. Взаимодействия реализуются через Интерфейс GInteraction.
Графика имеет двойную буферизацию для плавного рендеринга. Реализация интенсивно использует регион для сохранения отслеживать объекты и области повреждения, чтобы сохранить визуализацию трубопровод максимально эффективен.
Версия | Библиотека | Источник | Демонстрации | Документация |
1,0 (декабрь 2009 г. )) | Г.банка | G.src.jar | G.demos.jar | docs.jar (онлайн) |
1.1 (не по расписанию) | ||||
2.0 (не запланировано) |
Программы хорошо подходят в качестве самоучителя, а также указывает на фреймворки для реальных приложений, основанные на библиотека.
Чтобы демонстрационные программы были простыми (в отдельных файлах), классы модели реализованы как внутренние классы основного класса. В реальных приложениях они будут обычно находятся в отдельных файлах.
Чтобы запустить демонстрационную программу, выполните следующие простые шаги:
- Скачать G.jar на некоторые
каталог, например
.../gtest/G.jar
- Скопируйте/вставьте демонстрационную программу из браузера и сохраните
локально:
.../gtest/Demo1.java
- Скомпилируйте демонстрационную программу:
javac - путь к классам G.jar Demo1.java
- Запустите демонстрационную программу:
java -путь к классам G.jar;. Demo1
(MS/Windows) илиjava -путь к классам G.jar:. Демо1
(Unix).
Демонстрация 1 Программа, демонстрирующая:
Демо1.java | |
Демонстрация 1a Программа, демонстрирующая:
Demo1a.java | |
Демонстрация 2 Программа, демонстрирующая:
Все элементы имеют связанный текст. Обратите внимание, что текст элементы находятся впереди, даже если объект, который они аннотируют находится сзади. Это следует за аннотацией G . стратегия, которая заключается в следующем:
Демо2.java | |
Демонстрация 3 Программа, демонстрирующая:
Эта программа также показывает различные режимы видимости для GОбъекты. Доступ к кнопкам-переключателям вверху переключение между видимой геометрией, видимой аннотацией, обоими видно или не видно. Видимость – это особенность GObjects и влияет на все поддерево компоненты, внедренные в этот узел. Демо3.java | |
Демонстрация 4 Программа, демонстрирующая:
Текстовые подсказки позиции состоят из трех компонентов:
Демо4.java | |
Демонстрация 5 Программа, демонстрирующая:
Указание геометрии относительно экстента мира делает сцена масштабируется и панорамируется, как показано в этой программе, через ZoomInteraction по умолчанию. Образцовая кривая имеет набор связанных с ней текстов. Обратите внимание во время масштабирования, как алгоритм аннотации всегда обеспечивает что они никогда не перекрываются и что они всегда на экране. Демо5.java | |
Демонстрация 6 Программа, демонстрирующая:
Демо6.java | |
Демонстрация 7 Программа, демонстрирующая:
Программа реализует взаимодействие, иллюстрирующее, как сцену можно обновить, просто наведя на нее курсор. Движущийся объект использует прозрачный цвет, поэтому фон графика просвечивает. Программа также иллюстрирует функцию истинного масштаба . сцены; Соотношение масштаба этой сцены фиксировано и независимо от формы окна, как видно при изменении размера. Настройкой сцены по умолчанию является сжатие экстента мира. для запуска текущего окна просмотра. Демо7.java | |
Демо 8 Программа, демонстрирующая:
Эта программа иллюстрирует эту функцию. Графический объект содержит дочерние узлы, как показано на рисунке. Изначально все узлы наследует цвет фона от сцены, где он явно комплект (белый). Щелчок по узлу устанавливает случайный цвет фона на этом узле. Этот фоновый цвет наследуется по дереву к узлам, которые явно не определяют цвет фона. Нажатие кнопки мыши 2 на узле отключает фон цвет в этом узле. Демо8.java | |
Демонстрация 9 Программа, демонстрирующая:
Демо9.java | |
Демо 10 Программа, демонстрирующая:
В этой демонстрационной программе дополнительный сегмент (красный путь) помещается поверх изображения и заполняется геометрией через простое взаимодействие рисования. Обратите внимание, что эта программа принимает изображение в качестве входного параметра. Изображение не предоставляется, но можно использовать любое изображение. Демо10.java | |
Демо 11 Программа, демонстрирующая:
Эта программа также демонстрирует, как использовать полосы прокрутки с Г . Просто передайте два компонента полосы прокрутки в GScene, который позаботится о деталях. Демо11.java | |
Демо 12 Программа, демонстрирующая:
Программа также демонстрирует простоту печати содержимое GWindow. Демо12.java | |
Демо 13 Программа, демонстрирующая:
В игре чередуются ходы белых и черных игроков. Когда курсор перемещается по доске, допустимые ячейки выделены. Кусок размещается щелчком левой кнопку мыши внутри допустимой ячейки. Демо13.java | |
Демо 14 Программа, демонстрирующая:
Экстент мира выбран для упрощения позиционирования колышки и диски. Колышки и диски являются объектами, наследующими из GObject. Изначально диски являются детьми крайний левый колышек, а во время решения они переродятся согласно своему новому положению. Демо14.java | |
Демо 15 Программа, демонстрирующая:
График можно масштабировать и прокручивать. Сцена аннотации имеет сюжетный мир степень как данные пользователя для корректного обновления аннотация осей при перерисовке. Обратите внимание, что G — это , а не библиотека диаграмм (например, JFreeChart, например). Но его можно легко использовать как основу для одного, как этот пример иллюстрирует. Также обратите внимание, что эта программа использует красивые номера модуль для создания аннотации осей. Демо15.java | |
Демо 16 Программа, демонстрирующая:
Метка и процент добавляются к невидимой строке, берут начало в центре каждого сектора и выходят за пределы круговая диаграмма. Менеджер компоновки аннотаций гарантирует, что аннотации следуют этим линиям и не перекрываются. Еще раз обратите внимание, что G — это , а не библиотека диаграмм, но что его можно легко использовать в качестве основы для одного как показывает этот пример. Демо16.java | |
Демо 17 Программа, демонстрирующая:
Поскольку G является базовой библиотекой, она не поддерживает сложные формы, такие как 3D-полосы, как показано на рисунке. Однако такие формы могут легко предоставляться путем расширения GObject, а геометрия может быть созданный через общий класс Geometry, который входит в состав G . Демо17.java | |
Демо 18 Программа, демонстрирующая:
Обратите внимание, что G никогда не масштабирует изображения. Когда необходимо масштабирование это должно обрабатываться клиентским приложением, обычно в рамках метод draw(), как показано здесь. Это дает приложению полный контроль над процессом масштабирования и позволяет избежать ненужное кэширование и обработка внутри механизма рендеринга. Обратите внимание, что эта программа берет изображение и экстент изображения. информацию в качестве входных параметров. Изображение не предоставлено, но любое изображение может быть использовано. Обратите также внимание на то, что программа использует красивые номера модуль для создания аннотаций. Демо18.java | |
Демо 19 Программа, демонстрирующая:
Цветные сектора создаются путем соединения двух кругов секторов разного радиуса и удалить лишние вершины. Кнопка запуска игры представляет собой встроенный JButton. в графике с помощью прикрепленной оболочки GComponent к GSegment. Демо19.java | |
Демо 20 Программа, демонстрирующая:
Изначально снежинка имеет три ребра. Пользователь может добавить или удалить уровни снежинки с помощью + и кнопки — . Графическая реализация есть просто. Один GSegment содержит кривую и ее геометрия пересчитывается для каждой команды добавления/удаления уровня на основе Текущая геометрия. Холст можно масштабировать, поэтому фрактальная природа изображения можно проверить форму. Обратите внимание, что количество точек на кривой увеличивается экспоненциально с количеством уровней, и что производительность соответственно деградирует программа. Демо20.java | |
Демо 21 Программа, демонстрирующая:
Правильная реализация собирала бы посох и ноты свойства в подходящих классах и взять экземпляры этих в качестве входных данных для GStave и GNote, описанных здесь. В этой демонстрационной программе только несколько свойств включены, и они являются частью графических классов, чтобы сделать реализация компактная. Представление заметки основано на векторе и, следовательно, полностью масштабируема. Обратите внимание, что эта программа использует сплайн модуль для создания геометрии заметок. Демо21.java | |
Демо 23 Программа, демонстрирующая:
Геометрия ручки часов обновляется в ответ на задача таймера запускается раз в секунду. Сцена масштабируема. Демо23.java |
Вышеупомянутая библиотека является бесплатным программным обеспечением; вы можете распространять его и/или изменить его в соответствии с условиями Стандартная общественная лицензия ограниченного применения GNU как опубликовано Free Software Foundation; либо версия 2.1 Лицензии или (по вашему выбору) любая более поздняя версия.
Вышеупомянутая библиотека распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. См. Стандартная общественная лицензия ограниченного применения GNU Больше подробностей.
Короче говоря:
- G.jar бесплатен и может использоваться для любого целей (в том числе коммерческих).