Spec-Zone.ru › OpenJDK 27

Класс Graphics2D

java.lang.Object
java.awt.Graphics
java.awt.Graphics2D
public abstract class Graphics2D extends Graphics
Этот класс Graphics2D расширяет класс Graphics, предоставляя более сложные средства управления геометрией, преобразованиями координат, управлением цветом и компоновкой текста. Это основной класс для отображения двумерных фигур, текста и изображений на платформе Java(tm).

Системы координат

Все координаты, передаваемые объекту Graphics2D, задаются в независимой от устройства системе координат, называемой пользовательским пространством и используемой приложениями. Объект Graphics2D содержит объект AffineTransform в составе своего состояния отрисовки; он определяет, как преобразовывать координаты из пользовательского пространства в зависящие от устройства координаты пространства устройства.

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

Некоторые операции, выполняемые объектами атрибутов отрисовки, происходят в пространстве устройства, однако все методы Graphics2D принимают координаты пользовательского пространства.

Каждый объект Graphics2D связан с целью, определяющей место выполнения отрисовки. Объект GraphicsConfiguration задаёт характеристики цели отрисовки, например формат пикселей и разрешение. На протяжении всего времени существования объекта Graphics2D используется одна и та же цель отрисовки.

При создании объекта Graphics2D объект GraphicsConfiguration задаёт преобразование по умолчанию для цели объекта Graphics2D (объекта Component или Image). Это преобразование по умолчанию отображает систему координат пользовательского пространства в координаты экрана и принтера таким образом, что начало координат соответствует верхнему левому углу целевой области устройства, положительное направление оси X направлено вправо, а положительное направление оси Y — вниз. Масштабирование преобразования по умолчанию устанавливается равным единице для устройств, близких к 72 точкам на дюйм, например экранов. Для устройств высокого разрешения, например принтеров, масштабирование преобразования по умолчанию устанавливается приблизительно равным 72 единицам пользовательского пространства на квадратный дюйм. Для буферов изображений преобразованием по умолчанию является преобразование Identity.

Процесс отрисовки

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

Этапы процесса отрисовки:

  1. Определение того, что следует отрисовать.
  2. Ограничение операции отрисовки текущей областью Clip. Область Clip задаётся объектом Shape в пользовательском пространстве и управляется программой с помощью различных методов управления отсечением класса Graphics и Graphics2D. Эта пользовательская область отсечения преобразуется в пространство устройства с помощью текущего Transform и объединяется с областью отсечения устройства, которая определяется видимостью окон и границами устройства. Объединение пользовательской области отсечения и области отсечения устройства задаёт составную область отсечения, определяющую итоговую область отсечения. Система отрисовки не изменяет пользовательскую область отсечения, чтобы отразить полученную составную область отсечения.
  3. Определение цветов для отрисовки.
  4. Применение цветов к целевой поверхности рисования с использованием текущего атрибута Composite в контексте Graphics2D.

Три типа операций отрисовки и подробное описание соответствующих процессов отрисовки:
  1. Операции Shape
    1. Если операция является операцией draw(Shape), то для построения нового объекта Shape, содержащего контур указанного объекта Shape, используется метод createStrokedShape текущего атрибута Stroke в контексте Graphics2D.
    2. Объект Shape преобразуется из пользовательского пространства в пространство устройства с помощью текущего Transform в контексте Graphics2D.
    3. Контур объекта Shape извлекается с помощью метода getPathIterator объекта Shape. Метод возвращает объект PathIterator, который проходит вдоль границы объекта Shape.
    4. Если объект Graphics2D не может обрабатывать криволинейные сегменты, возвращаемые объектом PathIterator, он может вызвать альтернативный метод getPathIterator объекта Shape, который упрощает объект Shape.
    5. У текущего объекта Paint в контексте Graphics2D запрашивается объект PaintContext, определяющий цвета для отрисовки в пространстве устройства.
  2. Операции с текстом
    1. Для определения набора глифов, необходимых для отрисовки указанного объекта String, выполняются следующие действия:
      1. Если аргументом является String, текущий Font в контексте Graphics2D преобразует символы Юникода в объекте String в набор глифов для отображения с использованием базовых алгоритмов компоновки и формирования текста, реализованных шрифтом.
      2. Если аргументом является AttributedCharacterIterator, итератору предлагается преобразовать себя в объект TextLayout с использованием встроенных атрибутов шрифта. Объект TextLayout реализует более сложные алгоритмы компоновки глифов, которые автоматически выполняют корректировку двунаправленного текста Юникода для нескольких шрифтов с различными направлениями письма.
      3. Если аргументом является GlyphVector, объект GlyphVector уже содержит соответствующие коды глифов для конкретного шрифта и явные координаты положения каждого глифа.
    2. У текущего Font запрашиваются контуры указанных глифов. Эти контуры рассматриваются как фигуры в пользовательском пространстве относительно положения каждого глифа, определённого на шаге 1.
    3. Контуры символов заполняются способом, описанным выше в разделе «Операции Shape».
    4. У текущего Paint запрашивается объект PaintContext, определяющий цвета для отрисовки в пространстве устройства.
  3. Операции с Image
    1. Область интереса определяется ограничивающим прямоугольником исходного объекта Image. Этот ограничивающий прямоугольник задаётся в пространстве изображения — локальной системе координат объекта Image.
    2. Если объект AffineTransform передан методу drawImage(Image, AffineTransform, ImageObserver), объект AffineTransform используется для преобразования ограничивающего прямоугольника из пространства изображения в пользовательское пространство. Если объект AffineTransform не задан, считается, что ограничивающий прямоугольник уже находится в пользовательском пространстве.
    3. Ограничивающий прямоугольник исходного объекта Image преобразуется из пользовательского пространства в пространство устройства с помощью текущего Transform. Обратите внимание, что результат преобразования ограничивающего прямоугольника не обязательно является прямоугольной областью в пространстве устройства.
    4. Объект Image определяет цвета для отрисовки, выполняя выборку в соответствии с отображением координат источника в координаты назначения, заданным текущим Transform и необязательным преобразованием изображения.

Атрибуты отрисовки по умолчанию

Значения атрибутов отрисовки Graphics2D по умолчанию:
Paint
Цвет объекта Component.
Font
Объект Font для объекта Component.
Stroke
Квадратное перо шириной 1, без штриховки, с соединениями сегментов типа «стык» и квадратными окончаниями.
Transform
getDefaultTransform для объекта GraphicsConfiguration объекта Component.
Composite
Правило AlphaComposite.SRC_OVER.
Clip
Отсутствие атрибута отрисовки Clip; вывод ограничивается объектом Component.

Проблемы совместимости отрисовки

Модель отрисовки JDK(tm) 1.1 основана на модели дискретизации, согласно которой координаты бесконечно тонкие и расположены между пикселями. Операции рисования выполняются пером шириной в один пиксель, которое заполняет пиксель ниже и справа от опорной точки на траектории. Модель отрисовки JDK 1.1 соответствует возможностям большинства существующих классов платформенных средств отрисовки, которым необходимо преобразовывать целочисленные координаты в дискретное перо, полностью занимающее заданное число пикселей.

API Java 2D(tm) (платформа Java(tm) 2) поддерживает средства отрисовки с сглаживанием. Перу шириной в один пиксель необязательно целиком попадать в пиксель N, а не в пиксель N+1. Перо может частично покрывать оба пикселя. Для широкого пера не нужно выбирать направление смещения, поскольку смешивание цветов вдоль границ траектории пера позволяет пользователю видеть его положение с субпиксельной точностью. Однако, если сглаживание отключено установкой для ключа подсказки KEY_ANTIALIASING значения VALUE_ANTIALIAS_OFF, средству отрисовки может потребоваться применить смещение, чтобы определить, какой пиксель изменить, когда перо пересекает границу пикселя, например при рисовании вдоль целочисленной координаты в пространстве устройства. Хотя благодаря возможностям средства отрисовки со сглаживанием модели отрисовки больше не требуется задавать смещение пера, желательно, чтобы средства отрисовки со сглаживанием и без него работали одинаково в распространённых случаях рисования на экране горизонтальных и вертикальных линий шириной в один пиксель. Чтобы включение сглаживания установкой для ключа подсказки KEY_ANTIALIASING значения VALUE_ANTIALIAS_ON не приводило к внезапному удвоению ширины таких линий и уменьшению их непрозрачности вдвое, желательно, чтобы модель задавала для таких линий траекторию, полностью покрывающую определённый набор пикселей и позволяющую повысить чёткость линий.

API Java 2D обеспечивает совместимость с поведением отрисовки JDK 1.1: прежние операции и существующее поведение средств отрисовки остаются неизменными в рамках API Java 2D. Определены прежние методы, соответствующие общим методам draw и fill, чтобы ясно показать, как Graphics2D расширяет Graphics в зависимости от значений атрибутов Stroke и Transform и подсказок отрисовки. При настройках атрибутов по умолчанию определение обеспечивает идентичное поведение. Например, по умолчанию Stroke — это BasicStroke шириной 1 без штриховки, а преобразование по умолчанию для рисования на экране является тождественным преобразованием.

Следующие два правила обеспечивают предсказуемое поведение отрисовки как при использовании сглаживания, так и без него.

  • Координаты устройства определяются как расположенные между пикселями устройства, что позволяет избежать несогласованных результатов при сглаженной и несглаженной отрисовке. Если бы координаты определялись в центре пикселя, некоторые пиксели, покрываемые фигурой, например прямоугольником, были бы покрыты лишь наполовину. При несглаженной отрисовке такие наполовину покрытые пиксели либо отображались бы внутри фигуры, либо за её пределами. При сглаженной отрисовке пиксели вдоль всей границы фигуры были бы покрыты наполовину. Напротив, поскольку координаты определяются как расположенные между пикселями, у такой фигуры, как прямоугольник, не будет пикселей, покрытых наполовину, независимо от использования сглаживания.
  • Линии и контуры, обведённые с помощью объекта BasicStroke, могут «нормализоваться», чтобы обеспечить согласованную отрисовку контуров при их расположении в разных точках области рисования и независимо от использования сглаживания. Этим процессом нормализации управляет подсказка KEY_STROKE_CONTROL. Точный алгоритм нормализации не задаётся, однако её цели — обеспечить согласованный внешний вид линий независимо от их расположения на пиксельной сетке и сделать горизонтальные и вертикальные линии более сплошными в режиме сглаживания, чтобы они больше походили на соответствующие линии без сглаживания. Типичный этап нормализации может переместить конечные точки линии со сглаживанием в центры пикселей, чтобы уменьшить смешивание цветов, либо скорректировать субпиксельное положение линий без сглаживания, чтобы округлённая до целого числа пиксельная ширина линий с плавающей точкой с одинаковой вероятностью составляла чётное или нечётное число пикселей. Этот процесс может перемещать конечные точки не более чем на половину пикселя (обычно в направлении положительной бесконечности по обеим осям), обеспечивая согласованные результаты.

Следующие определения общих прежних методов при настройках атрибутов по умолчанию обеспечивают поведение, идентичное описанному ранее:

  • Для операций fill, включая fillRect, fillRoundRect, fillOval, fillArc, fillPolygon и clearRect, теперь можно вызвать fill с нужным объектом Shape. Например, при заполнении прямоугольника вызывается
    fill(new Rectangle(x, y, w, h));
    
    .
  • Аналогично, для операций рисования, включая drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline и drawPolygon, теперь можно вызвать draw с нужным объектом Shape. Например, при рисовании прямоугольника вызывается
    draw(new Rectangle(x, y, w, h));
    
    .
  • Методы draw3DRect и fill3DRect реализованы на основе методов drawLine и fillRect класса Graphics, поведение которых зависело от текущих объектов Stroke и Paint в контексте Graphics2D. Этот класс переопределяет эти реализации версиями, использующими только текущий Color и игнорирующими текущий Paint; объект fillRect описывает поведение, полностью совпадающее с поведением существовавших ранее методов, независимо от значения текущего Stroke.
Класс Graphics определяет только метод setColor для управления цветом заливки. Поскольку API Java 2D расширяет объект Color, реализуя новый интерфейс Paint, существующий метод setColor теперь служит удобным способом установки текущего атрибута Paint в значение объекта Color. setColor(c) эквивалентен setPaint(c).

Класс Graphics определяет два метода для управления применением цветов к целевому объекту.

  1. Метод setPaintMode реализован как удобный способ установки значения Composite по умолчанию; он эквивалентен setComposite(new AlphaComposite.SrcOver).
  2. Метод setXORMode(Color xorcolor) реализован как удобный способ установки специального объекта Composite, который игнорирует компоненты Alpha исходных цветов и устанавливает для цвета назначения значение:
    dstpixel = (PixelOf(srccolor) ^ PixelOf(xorcolor) ^ dstpixel);
    
См. также:
  • RenderingHints

Краткое описание конструкторов

Graphics2D()
Модификатор Конструктор Описание
protected
Создает новый объект Graphics2D.

Краткое описание методов

Модификатор и тип Метод Описание
abstract void addRenderingHints(Map<?,?> hints)
Задает значения произвольного числа параметров для алгоритмов отрисовки.
abstract void clip(Shape s)
Пересекает текущую Clip с внутренней областью указанной Shape и задает Clip равным полученному пересечению.
abstract void draw(Shape s)
Обводит контур Shape с использованием настроек текущего контекста Graphics2D.
void draw3DRect(int x, int y, int width, int height, boolean raised)
Рисует рельефный контур указанного прямоугольника.
abstract void drawGlyphVector(GlyphVector g, float x, float y)
Отрисовывает текст указанного GlyphVector с использованием атрибутов отрисовки контекста Graphics2D.
abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
Отрисовывает BufferedImage, обработанное фильтром BufferedImageOp.
abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
Отрисовывает изображение, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство.
abstract void drawRenderableImage(RenderableImage img, AffineTransform xform)
Отрисовывает RenderableImage, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство.
abstract void drawRenderedImage(RenderedImage img, AffineTransform xform)
Отрисовывает RenderedImage, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство.
abstract void drawString(String str, float x, float y)
Отрисовывает текст, заданный указанным String, используя текущее состояние текстовых атрибутов в контексте Graphics2D.
abstract void drawString(String str, int x, int y)
Отрисовывает текст указанного String, используя текущее состояние текстовых атрибутов в контексте Graphics2D.
abstract void drawString(AttributedCharacterIterator iterator, float x, float y)
Отрисовывает текст указанного итератора, применяя его атрибуты в соответствии со спецификацией класса TextAttribute.
abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
Отрисовывает текст указанного итератора, применяя его атрибуты в соответствии со спецификацией класса TextAttribute.
abstract void fill(Shape s)
Заполняет внутреннюю область Shape с использованием настроек контекста Graphics2D.
void fill3DRect(int x, int y, int width, int height, boolean raised)
Рисует рельефный прямоугольник, заполненный текущим цветом.
abstract Color getBackground()
Возвращает цвет фона, используемый для очистки области.
abstract Composite getComposite()
Возвращает текущий Composite в контексте Graphics2D.
abstract GraphicsConfiguration getDeviceConfiguration()
Возвращает конфигурацию устройства, связанную с этим Graphics2D.
abstract FontRenderContext getFontRenderContext()
Возвращает контекст отрисовки Font внутри этого контекста Graphics2D.
abstract Paint getPaint()
Возвращает текущее значение Paint контекста Graphics2D.
abstract Object getRenderingHint(RenderingHints.Key hintKey)
Возвращает значение одного параметра алгоритмов отрисовки.
abstract RenderingHints getRenderingHints()
Возвращает параметры алгоритмов отрисовки.
abstract Stroke getStroke()
Возвращает текущий Stroke в контексте Graphics2D.
abstract AffineTransform getTransform()
Возвращает копию текущего Transform в контексте Graphics2D.
abstract boolean hit(Rectangle rect, Shape s, boolean onStroke)
Проверяет, пересекается ли указанная Shape с указанным Rectangle, заданным в пространстве устройства.
abstract void rotate(double theta)
Объединяет текущее Graphics2D Transform с преобразованием поворота.
abstract void rotate(double theta, double x, double y)
Объединяет текущее Graphics2D Transform с преобразованием поворота со смещением.
abstract void scale(double sx, double sy)
Объединяет текущее Graphics2D Transform с масштабированием. Последующая отрисовка изменяется в соответствии с указанными коэффициентами масштабирования относительно предыдущего масштабирования.
abstract void setBackground(Color color)
Задает цвет фона для контекста Graphics2D.
abstract void setComposite(Composite comp)
Задает Composite для контекста Graphics2D.
abstract void setPaint(Paint paint)
Задает атрибут Paint для контекста Graphics2D.
abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
Задает значение одного параметра алгоритмов отрисовки.
abstract void setRenderingHints(Map<?,?> hints)
Заменяет значения всех параметров алгоритмов отрисовки указанным hints.
abstract void setStroke(Stroke s)
Задает Stroke для контекста Graphics2D.
abstract void setTransform(AffineTransform Tx)
Перезаписывает преобразование в контексте Graphics2D.
abstract void shear(double shx, double shy)
Объединяет текущее Graphics2D Transform с преобразованием сдвига.
abstract void transform(AffineTransform Tx)
Составляет объект AffineTransform с Transform в этом Graphics2D согласно правилу «последнее заданное применяется первым».
abstract void translate(double tx, double ty)
Объединяет текущее Graphics2D Transform с преобразованием переноса.
abstract void translate(int x, int y)
Переносит начало координат контекста Graphics2D в точку (x, y) в текущей системе координат.

Методы, объявленные в классе Graphics

clearRect, clipRect, copyArea, create, create, dispose, drawArc, drawBytes, drawChars, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawOval, drawPolygon, drawPolygon, drawPolyline, drawRect, drawRoundRect, fillArc, fillOval, fillPolygon, fillPolygon, fillRect, fillRoundRect, finalize, getClip, getClipBounds, getClipBounds, getClipRect, getColor, getFont, getFontMetrics, getFontMetrics, hitClip, setClip, setClip, setColor, setFont, setPaintMode, setXORMode, toString
Модификатор и тип Метод Описание
abstract void clearRect(int x, int y, int width, int height)
Очищает указанный прямоугольник, заполняя его цветом фона текущей поверхности рисования.
abstract void clipRect(int x, int y, int width, int height)
Пересекает текущую область отсечения с указанным прямоугольником.
abstract void copyArea(int x, int y, int width, int height, int dx, int dy)
Копирует область компонента на расстояние, заданное значениями dx и dy.
abstract Graphics create()
Создает новый объект Graphics, являющийся копией этого объекта Graphics.
Graphics create(int x, int y, int width, int height)
Создает новый объект Graphics на основе этого объекта Graphics, но с новым переносом и областью отсечения.
abstract void dispose()
Освобождает этот контекст графики и все используемые им системные ресурсы.
abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
Рисует контур круговой или эллиптической дуги, вписанной в указанный прямоугольник.
void drawBytes(byte[] data, int offset, int length, int x, int y)
Рисует текст, заданный указанным байтовым массивом, используя текущие шрифт и цвет этого контекста графики.
void drawChars(char[] data, int offset, int length, int x, int y)
Рисует текст, заданный указанным массивом символов, используя текущие шрифт и цвет этого контекста графики.
abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
Рисует доступную на данный момент часть указанной области изображения, масштабируя ее на лету для размещения в заданной области целевой поверхности рисования.
abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
Рисует доступную на данный момент часть указанной области изображения, масштабируя ее на лету для размещения в заданной области целевой поверхности рисования.
abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
Рисует доступную часть указанного изображения, уже масштабированного для размещения в заданном прямоугольнике.
abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
Рисует доступную часть указанного изображения, уже масштабированного для размещения в заданном прямоугольнике.
abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
Рисует доступную на данный момент часть указанного изображения.
abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
Рисует доступную на данный момент часть указанного изображения.
abstract void drawLine(int x1, int y1, int x2, int y2)
Рисует линию текущим цветом между точками (x1, y1) и (x2, y2) в системе координат этого контекста графики.
abstract void drawOval(int x, int y, int width, int height)
Рисует контур овала.
abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
Рисует замкнутый многоугольник, заданный массивами координат x и y.
void drawPolygon(Polygon p)
Рисует контур многоугольника, заданного указанным объектом Polygon.
abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
Рисует последовательность соединенных линий, заданную массивами координат x и y.
void drawRect(int x, int y, int width, int height)
Рисует контур указанного прямоугольника.
abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
Рисует контур прямоугольника с закругленными углами, используя текущий цвет этого контекста графики.
abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
Заполняет круговую или эллиптическую дугу, вписанную в указанный прямоугольник.
abstract void fillOval(int x, int y, int width, int height)
Заполняет овал, ограниченный указанным прямоугольником, текущим цветом.
abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
Заполняет замкнутый многоугольник, заданный массивами координат x и y.
void fillPolygon(Polygon p)
Заполняет многоугольник, заданный указанным объектом Polygon, текущим цветом контекста графики.
abstract void fillRect(int x, int y, int width, int height)
Заполняет указанный прямоугольник.
abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
Заполняет указанный прямоугольник с закругленными углами текущим цветом.
void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и будет удалена.
abstract Shape getClip()
Возвращает текущую область отсечения.
abstract Rectangle getClipBounds()
Возвращает ограничивающий прямоугольник текущей области отсечения.
Rectangle getClipBounds(Rectangle r)
Возвращает ограничивающий прямоугольник текущей области отсечения.
Rectangle getClipRect()
Устарело.
Начиная с версии JDK 1.1 заменено на getClipBounds().
abstract Color getColor()
Возвращает текущий цвет этого контекста графики.
abstract Font getFont()
Возвращает текущий шрифт.
FontMetrics getFontMetrics()
Возвращает метрики текущего шрифта.
abstract FontMetrics getFontMetrics(Font f)
Возвращает метрики указанного шрифта.
boolean hitClip(int x, int y, int width, int height)
Возвращает true, если указанная прямоугольная область может пересекаться с текущей областью отсечения.
abstract void setClip(int x, int y, int width, int height)
Задает текущую область отсечения прямоугольником, определенным указанными координатами.
abstract void setClip(Shape clip)
Задает текущую область отсечения произвольной фигурой.
abstract void setColor(Color c)
Задает указанный цвет в качестве текущего цвета этого контекста графики.
abstract void setFont(Font font)
Задает указанный шрифт для этого контекста графики.
abstract void setPaintMode()
Задает для этого контекста графики режим рисования, при котором целевая область перезаписывается текущим цветом контекста.
abstract void setXORMode(Color c1)
Задает для этого контекста графики режим рисования, при котором используются поочередно текущий цвет контекста и новый указанный цвет.
String toString()
Возвращает объект String, представляющий значение этого объекта Graphics.

Методы, объявленные в классе Object

clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект другому объекту.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения указанного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения указанного промежутка реального времени.

Подробное описание конструкторов

Graphics2D

protected Graphics2D()
Создает новый объект Graphics2D. Поскольку Graphics2D является абстрактным классом и должен быть настроен подклассами для различных устройств вывода, объекты Graphics2D нельзя создавать напрямую. Вместо этого объекты Graphics2D необходимо получить из другого объекта Graphics2D, созданного с помощью Component, или из изображений, таких как объекты BufferedImage.
См. также:
  • Component.getGraphics()
  • Graphics.create()

Подробное описание методов

draw3DRect

public void draw3DRect(int x, int y, int width, int height, boolean raised)
Рисует объемный контур указанного прямоугольника с эффектом подсветки. Края прямоугольника подсвечиваются так, чтобы казаться скошенными и освещенными из верхнего левого угла.

Цвета для эффекта подсветки определяются на основе текущего цвета. Полученный прямоугольник занимает область шириной width + 1 пикселей и высотой height + 1 пикселей. Этот метод использует исключительно текущую Color и игнорирует текущую Paint.

Переопределяет:
draw3DRect в классе Graphics
Параметры:
x — координата x прямоугольника, который нужно нарисовать.
y — координата y прямоугольника, который нужно нарисовать.
width — ширина прямоугольника, который нужно нарисовать.
height — высота прямоугольника, который нужно нарисовать.
raised — логическое значение, определяющее, будет ли прямоугольник казаться приподнятым над поверхностью или утопленным в нее.
См. также:
  • Graphics.fill3DRect(int, int, int, int, boolean)

fill3DRect

public void fill3DRect(int x, int y, int width, int height, boolean raised)
Рисует залитый текущим цветом прямоугольник с объемной подсветкой. Края прямоугольника подсвечиваются так, чтобы казаться скошенными и освещенными из верхнего левого угла. Цвета для эффекта подсветки и заливки определяются на основе текущей Color. Этот метод использует исключительно текущую Color и игнорирует текущую Paint.
Переопределяет:
fill3DRect в классе Graphics
Параметры:
x — координата x прямоугольника, который нужно залить.
y — координата y прямоугольника, который нужно залить.
width — ширина прямоугольника, который нужно залить.
height — высота прямоугольника, который нужно залить.
raised — логическое значение, определяющее, будет ли прямоугольник казаться приподнятым над поверхностью или выдавленным на поверхности.
См. также:
  • Graphics.draw3DRect(int, int, int, int, boolean)

draw

public abstract void draw(Shape s)
Рисует контур Shape с использованием настроек текущего контекста Graphics2D. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform, Paint, Composite и Stroke.
Параметры:
s — Shape для отображения
См. также:
  • setStroke(Stroke)
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)
  • setComposite(Composite)

drawImage

public abstract boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
Отображает изображение, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство. Преобразование из пользовательского пространства в пространство устройства выполняется с помощью текущего Transform в Graphics2D. Указанное преобразование применяется к изображению до применения атрибута преобразования в контексте Graphics2D. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform и Composite. Обратите внимание: если указанное преобразование необратимо, рендеринг не выполняется.
Параметры:
img — указанное изображение для отображения. Этот метод ничего не делает, если img равно null.
xform — преобразование из пространства изображения в пользовательское пространство
obs — ImageObserver, которому отправляются уведомления по мере загрузки Image
Возвращает:
true, если Image полностью загружено и отображено либо равно null; false, если Image еще загружается.
См. также:
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)

drawImage

public abstract void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
Отображает BufferedImage, обработанное фильтром BufferedImageOp. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform и Composite. Это эквивалентно:
img1 = op.filter(img, null);
drawImage(img1, new AffineTransform(1f,0f,0f,1f,x,y), null);
Параметры:
img — указанное BufferedImage для отображения. Этот метод ничего не делает, если img равно null.
op — фильтр, применяемый к изображению перед отображением
x — координата x точки в пользовательском пространстве, где отображается верхний левый угол изображения
y — координата y точки в пользовательском пространстве, где отображается верхний левый угол изображения
См. также:
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)

drawRenderedImage

public abstract void drawRenderedImage(RenderedImage img, AffineTransform xform)
Отображает RenderedImage, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство. Преобразование из пользовательского пространства в пространство устройства выполняется с помощью текущего Transform в Graphics2D. Указанное преобразование применяется к изображению до применения атрибута преобразования в контексте Graphics2D. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform и Composite. Обратите внимание: если указанное преобразование необратимо, рендеринг не выполняется.
Параметры:
img — изображение для отображения. Этот метод ничего не делает, если img равно null.
xform — преобразование из пространства изображения в пользовательское пространство
См. также:
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)

drawRenderableImage

public abstract void drawRenderableImage(RenderableImage img, AffineTransform xform)
Отображает RenderableImage, применяя перед рисованием преобразование из пространства изображения в пользовательское пространство. Преобразование из пользовательского пространства в пространство устройства выполняется с помощью текущего Transform в Graphics2D. Указанное преобразование применяется к изображению до применения атрибута преобразования в контексте Graphics2D. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform и Composite. Обратите внимание: если указанное преобразование необратимо, рендеринг не выполняется.

Подсказки рендеринга, заданные для объекта Graphics2D, могут использоваться при отображении RenderableImage. Если требуется явный контроль над определенными подсказками, распознаваемыми конкретным RenderableImage, или необходимо знать, какие подсказки используются, следует получить RenderedImage непосредственно из RenderableImage и отобразить его с помощью drawRenderedImage.

Параметры:
img — изображение для отображения. Этот метод ничего не делает, если img равно null.
xform — преобразование из пространства изображения в пользовательское пространство
См. также:
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)
  • drawRenderedImage(RenderedImage, AffineTransform)

drawString

public abstract void drawString(String str, int x, int y)
Отображает текст указанной String, используя текущее состояние текстовых атрибутов в контексте Graphics2D. Базовая линия первого символа находится в точке (x, y) пользовательского пространства. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform, Paint, Font и Composite. Для символов в системах письма, таких как иврит и арабский, глифы могут отображаться справа налево; в этом случае переданная координата указывает положение самого левого символа на базовой линии.
Определено в:
drawString в классе Graphics
Параметры:
str — строка для отображения
x — координата x точки, в которой должна отображаться String
y — координата y точки, в которой должна отображаться String
Вызывает исключение:
NullPointerException — если str равно null
Начиная с:
1.0
См. также:
  • Graphics.drawBytes(byte[], int, int, int, int)
  • Graphics.drawChars(char[], int, int, int, int)

drawString

public abstract void drawString(String str, float x, float y)
Отображает текст, заданный указанной String, используя текущее состояние текстовых атрибутов в контексте Graphics2D. Базовая линия первого символа находится в точке (x, y) пользовательского пространства. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform, Paint, Font и Composite. Для символов в системах письма, таких как иврит и арабский, глифы могут отображаться справа налево; в этом случае переданная координата указывает положение самого левого символа на базовой линии.
Параметры:
str — String для отображения
x — координата x точки, в которой должна отображаться String
y — координата y точки, в которой должна отображаться String
Вызывает исключение:
NullPointerException — если str равно null
См. также:
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • Graphics.setFont(Font)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • Graphics.setClip(int, int, int, int)

drawString

public abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
Отображает текст указанного итератора, применяя его атрибуты согласно спецификации класса TextAttribute.

Базовая линия первого символа находится в точке (x, y) пользовательского пространства. Для символов в системах письма, таких как иврит и арабский, глифы могут отображаться справа налево; в этом случае переданная координата указывает положение самого левого символа на базовой линии.

Определено в:
drawString в классе Graphics
Параметры:
iterator — итератор, текст которого нужно отобразить
x — координата x точки, в которой нужно отобразить текст итератора
y — координата y точки, в которой нужно отобразить текст итератора
Вызывает исключение:
NullPointerException — если iterator равно null
См. также:
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • Graphics.setClip(int, int, int, int)

drawString

public abstract void drawString(AttributedCharacterIterator iterator, float x, float y)
Отображает текст указанного итератора, применяя его атрибуты согласно спецификации класса TextAttribute.

Базовая линия первого символа находится в точке (x, y) пользовательского пространства. Для символов в системах письма, таких как иврит и арабский, глифы могут отображаться справа налево; в этом случае переданная координата указывает положение самого левого символа на базовой линии.

Параметры:
iterator — итератор, текст которого нужно отобразить
x — координата x точки, в которой нужно отобразить текст итератора
y — координата y точки, в которой нужно отобразить текст итератора
Вызывает исключение:
NullPointerException — если iterator равно null
См. также:
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • Graphics.setClip(int, int, int, int)

drawGlyphVector

public abstract void drawGlyphVector(GlyphVector g, float x, float y)
Отображает текст указанного GlyphVector с использованием атрибутов рендеринга контекста Graphics2D. Применяемые атрибуты рендеринга включают атрибуты Clip, Transform, Paint и Composite. GlyphVector задает отдельные глифы из Font. GlyphVector также может содержать позиции глифов. Это самый быстрый способ отображения набора символов на экране.
Параметры:
g — GlyphVector для отображения
x — координата x в пользовательском пространстве, в которой нужно отобразить глифы
y — координата y в пользовательском пространстве, в которой нужно отобразить глифы
Вызывает исключение:
NullPointerException — если g равно null.
См. также:
  • Font.createGlyphVector(FontRenderContext, String)
  • GlyphVector
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • Graphics.setClip(int, int, int, int)

fill

public abstract void fill(Shape s)
Заполняет внутреннюю область Shape с использованием настроек контекста Graphics2D. Применяемые атрибуты рендеринга включают Clip, Transform, Paint и Composite.
Параметры:
s — Shape для заливки
См. также:
  • setPaint(Paint)
  • Graphics.setColor(Color)
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • setComposite(Composite)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)

hit

public abstract boolean hit(Rectangle rect, Shape s, boolean onStroke)
Проверяет, пересекается ли указанный Shape с указанным Rectangle, заданным в пространстве устройства. Если onStroke равно false, этот метод проверяет, пересекается ли внутренняя область указанного Shape с указанным Rectangle. Если onStroke равно true, этот метод проверяет, пересекается ли Stroke контура указанного Shape с указанным Rectangle. Учитываемые атрибуты рендеринга включают Clip, Transform и Stroke.
Параметры:
rect — область в пространстве устройства, в которой нужно проверить пересечение
s — Shape, для которого нужно проверить пересечение
onStroke — флаг, определяющий, следует ли проверять контур или заполненную фигуру. Если флаг равен true, проверяется контур Stroke. Если флаг равен false, проверяется заполненная Shape.
Возвращает:
true, если пересечение обнаружено; в противном случае — false.
См. также:
  • setStroke(Stroke)
  • fill(Shape)
  • draw(Shape)
  • transform(AffineTransform)
  • setTransform(AffineTransform)
  • clip(Shape)
  • Graphics.setClip(int, int, int, int)

getDeviceConfiguration

public abstract GraphicsConfiguration getDeviceConfiguration()
Возвращает конфигурацию устройства, связанную с этим Graphics2D.
Возвращает:
конфигурацию устройства для этого Graphics2D.

setComposite

public abstract void setComposite(Composite comp)
Задает Composite для контекста Graphics2D. Composite используется во всех методах рисования, таких как drawImage, drawString, draw и fill. Он определяет, как в процессе рендеринга новые пиксели объединяются с существующими пикселями графического устройства.
Параметры:
comp — объект Composite, используемый для рендеринга
См. также:
  • Graphics.setXORMode(Color)
  • Graphics.setPaintMode()
  • getComposite()
  • AlphaComposite

setPaint

public abstract void setPaint(Paint paint)
Задает атрибут Paint для контекста Graphics2D. Вызов этого метода с объектом null Paint не влияет на текущий атрибут Paint этого Graphics2D.
Параметры:
paint — объект Paint, используемый для создания цвета в процессе рендеринга, или null
См. также:
  • Graphics.setColor(Color)
  • getPaint()
  • GradientPaint
  • TexturePaint

setStroke

public abstract void setStroke(Stroke s)
Задает Stroke для контекста Graphics2D.
Параметры:
s — объект Stroke, используемый для обводки Shape в процессе рендеринга
См. также:
  • BasicStroke
  • getStroke()

setRenderingHint

public abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
Задает значение отдельного параметра для алгоритмов рендеринга. Категории подсказок включают параметры, управляющие качеством рендеринга и общим компромиссом между временем и качеством в процессе рендеринга. Описание некоторых распространенных ключей и значений приведено в классе RenderingHints.
Параметры:
hintKey — ключ подсказки, значение которой нужно задать.
hintValue — значение, задающее предпочтения для указанной категории подсказок.
См. также:
  • getRenderingHint(RenderingHints.Key)
  • RenderingHints

getRenderingHint

public abstract Object getRenderingHint(RenderingHints.Key hintKey)
Возвращает значение отдельного параметра для алгоритмов рендеринга. Категории подсказок включают параметры, управляющие качеством рендеринга и общим компромиссом между временем и качеством в процессе рендеринга. Описание некоторых распространенных ключей и значений приведено в классе RenderingHints.
Параметры:
hintKey — ключ, соответствующий подсказке, значение которой нужно получить.
Возвращает:
объект, представляющий значение указанного ключа подсказки. Некоторые ключи и соответствующие им значения определены в классе RenderingHints.
См. также:
  • RenderingHints
  • setRenderingHint(RenderingHints.Key, Object)

setRenderingHints

public abstract void setRenderingHints(Map<?,?> hints)
Заменяет значения всех параметров алгоритмов рендеринга указанными в hints. Существующие значения всех подсказок рендеринга отбрасываются, а новый набор известных подсказок и значений инициализируется из указанного объекта Map. Категории подсказок включают параметры, управляющие качеством рендеринга и общим компромиссом между временем и качеством в процессе рендеринга. Описание некоторых распространенных ключей и значений приведено в классе RenderingHints.
Параметры:
hints — подсказки рендеринга, которые нужно задать
См. также:
  • getRenderingHints()
  • RenderingHints

addRenderingHints

public abstract void addRenderingHints(Map<?,?> hints)
Устанавливает значения произвольного количества параметров алгоритмов рендеринга. Изменяются только значения параметров рендеринга, присутствующие в указанном объекте Map. Все остальные параметры, отсутствующие в указанном объекте, остаются без изменений. Категории параметров включают настройки качества рендеринга и общего компромисса между временем и качеством в процессе рендеринга. Определения некоторых распространённых ключей и значений см. в классе RenderingHints.
Параметры:
hints — параметры рендеринга, которые требуется установить
См. также:
  • RenderingHints

getRenderingHints

public abstract RenderingHints getRenderingHints()
Возвращает параметры алгоритмов рендеринга. Категории параметров включают настройки качества рендеринга и общего компромисса между временем и качеством в процессе рендеринга. Возвращает все пары ключ/значение параметров, когда-либо заданные за одну операцию. Определения некоторых распространённых ключей и значений см. в классе RenderingHints.
Возвращает:
ссылка на экземпляр RenderingHints, содержащий текущие параметры.
См. также:
  • RenderingHints
  • setRenderingHints(Map)

translate

public abstract void translate(int x, int y)
Перемещает начало координат контекста Graphics2D в точку (x, y) в текущей системе координат. Изменяет контекст Graphics2D так, чтобы его новое начало соответствовало точке (x, y) в исходной системе координат контекста Graphics2D. Все координаты, используемые в последующих операциях рендеринга в этом графическом контексте, отсчитываются от нового начала координат.
Определено в:
translate в классе Graphics
Параметры:
x — указанная координата x
y — указанная координата y
С версии:
1.0

translate

public abstract void translate(double tx, double ty)
Объединяет текущее Graphics2D Transform с преобразованием переноса. Последующий рендеринг смещается на указанное расстояние относительно предыдущего положения. Это эквивалентно вызову transform(T), где T — AffineTransform, представленное следующей матрицей:
         [   1    0    tx  ]
         [   0    1    ty  ]
         [   0    0    1   ]
Параметры:
tx — расстояние переноса вдоль оси x
ty — расстояние переноса вдоль оси y

rotate

public abstract void rotate(double theta)
Объединяет текущее Graphics2D Transform с преобразованием поворота. Последующий рендеринг поворачивается на указанное значение в радианах относительно предыдущего начала координат. Это эквивалентно вызову transform(R), где R — AffineTransform, представленное следующей матрицей:
         [   cos(theta)    -sin(theta)    0   ]
         [   sin(theta)     cos(theta)    0   ]
         [       0              0         1   ]
Поворот на положительный угол тета перемещает точки на положительной полуоси x в направлении положительной полуоси y.
Параметры:
theta — угол поворота в радианах

rotate

public abstract void rotate(double theta, double x, double y)
Объединяет текущее Graphics2D Transform с преобразованием поворота со смещением. К последующему рендерингу применяется преобразование, сформированное переносом в указанную точку, поворотом на заданное значение в радианах и обратным переносом на величину исходного перемещения. Это эквивалентно следующей последовательности вызовов:
         translate(x, y);
         rotate(theta);
         translate(-x, -y);
Поворот на положительный угол тета перемещает точки на положительной полуоси x в направлении положительной полуоси y.
Параметры:
theta — угол поворота в радианах
x — координата x начала поворота
y — координата y начала поворота

scale

public abstract void scale(double sx, double sy)
Объединяет текущее Graphics2D Transform с преобразованием масштабирования. Последующий рендеринг изменяет размер в соответствии с указанными коэффициентами масштабирования относительно предыдущего масштаба. Это эквивалентно вызову transform(S), где S — AffineTransform, представленное следующей матрицей:
         [   sx   0    0   ]
         [   0    sy   0   ]
         [   0    0    1   ]
Параметры:
sx — коэффициент, на который умножаются координаты X в последующих операциях рендеринга относительно предыдущих операций рендеринга.
sy — коэффициент, на который умножаются координаты Y в последующих операциях рендеринга относительно предыдущих операций рендеринга.

shear

public abstract void shear(double shx, double shy)
Объединяет текущее Graphics2D Transform с преобразованием сдвига. Последующие операции рендеринга выполняются со сдвигом, определяемым указанным коэффициентом относительно предыдущего положения. Это эквивалентно вызову transform(SH), где SH — AffineTransform, представленное следующей матрицей:
         [   1   shx   0   ]
         [  shy   1    0   ]
         [   0    0    1   ]
Параметры:
shx — коэффициент, определяющий сдвиг координат в направлении положительной оси X в зависимости от их координаты Y
shy — коэффициент, определяющий сдвиг координат в направлении положительной оси Y в зависимости от их координаты X

transform

public abstract void transform(AffineTransform Tx)
Объединяет объект AffineTransform с Transform в этом Graphics2D по правилу «последнее указанное применяется первым». Если текущее Transform равно Cx, результат объединения с Tx — новое Transform Cx'. Cx' становится текущим Transform для этого Graphics2D. Преобразование точки p с помощью обновлённого Transform Cx' эквивалентно сначала преобразованию p с помощью Tx, а затем преобразованию результата с помощью исходного Transform Cx. Иными словами, Cx'(p) = Cx(Tx(p)). При необходимости создаётся копия Tx, чтобы последующие изменения Tx не влияли на рендеринг.
Параметры:
Tx — объект AffineTransform, который требуется объединить с текущим Transform
См. также:
  • setTransform(AffineTransform)
  • AffineTransform

setTransform

public abstract void setTransform(AffineTransform Tx)
Перезаписывает преобразование в контексте Graphics2D. ПРЕДУПРЕЖДЕНИЕ: этот метод никогда не следует использовать для применения нового преобразования координат поверх существующего, поскольку Graphics2D уже может содержать преобразование, необходимое для других целей, например для рендеринга компонентов Swing или применения масштабирования с учётом разрешения принтера.

Для добавления преобразования координат используйте методы transform, rotate, scale или shear. Метод setTransform предназначен только для восстановления исходного преобразования Graphics2D после рендеринга, как показано в следующем примере:

// Get the current transform
AffineTransform saveAT = g2.getTransform();
// Perform transformation
g2d.transform(...);
// Render
g2d.draw(...);
// Restore original transform
g2d.setTransform(saveAT);
Параметры:
Tx — AffineTransform, полученное с помощью метода getTransform
См. также:
  • transform(AffineTransform)
  • getTransform()
  • AffineTransform

getTransform

public abstract AffineTransform getTransform()
Возвращает копию текущего Transform в контексте Graphics2D.
Возвращает:
текущее AffineTransform в контексте Graphics2D.
См. также:
  • transform(AffineTransform)
  • setTransform(AffineTransform)

getPaint

public abstract Paint getPaint()
Возвращает текущий Paint контекста Graphics2D.
Возвращает:
текущий Graphics2D Paint, задающий цвет или узор.
См. также:
  • setPaint(Paint)
  • Graphics.setColor(Color)

getComposite

public abstract Composite getComposite()
Возвращает текущий Composite в контексте Graphics2D.
Возвращает:
текущий Graphics2D Composite, задающий способ композиции.
См. также:
  • setComposite(Composite)

setBackground

public abstract void setBackground(Color color)
Устанавливает цвет фона для контекста Graphics2D. Цвет фона используется для очистки области. При создании Graphics2D для Component цвет фона наследуется от Component. Установка цвета фона в контексте Graphics2D влияет только на последующие вызовы clearRect, но не на цвет фона Component. Чтобы изменить фон Component, используйте соответствующие методы Component.
Параметры:
color — цвет фона, используемый в последующих вызовах clearRect
См. также:
  • getBackground()
  • Graphics.clearRect(int, int, int, int)

getBackground

public abstract Color getBackground()
Возвращает цвет фона, используемый для очистки области.
Возвращает:
текущий Graphics2D Color, задающий цвет фона.
См. также:
  • setBackground(Color)

getStroke

public abstract Stroke getStroke()
Возвращает текущий Stroke в контексте Graphics2D.
Возвращает:
текущий Graphics2D Stroke, задающий стиль линии.
См. также:
  • setStroke(Stroke)

clip

public abstract void clip(Shape s)
Пересекает текущую Clip с внутренней областью указанной Shape и задаёт Clip как полученное пересечение. Перед пересечением указанная Shape преобразуется с помощью текущего Graphics2D Transform относительно текущей Clip. Этот метод используется для уменьшения текущей Clip. Чтобы увеличить Clip, используйте setClip.

Пользовательская область отсечения, изменяемая этим методом, не зависит от отсечения, связанного с границами устройства и видимостью. Если область отсечения ранее не задавалась или была очищена с помощью setClip с аргументом null, указанная Shape становится новой пользовательской областью отсечения.

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

Параметры:
s — Shape, которую требуется пересечь с текущей Clip. Этот метод обновляет текущую Clip.
Выбрасывает:
NullPointerException — если s имеет значение null и пользовательская область отсечения задана.

getFontRenderContext

public abstract FontRenderContext getFontRenderContext()
Получает контекст рендеринга Font в контексте Graphics2D. FontRenderContext содержит параметры приложения, такие как сглаживание и дробные метрики, а также сведения о целевом устройстве, например количество точек на дюйм. Эти сведения следует предоставлять приложению при использовании объектов, выполняющих типографское форматирование, таких как Font и TextLayout. Эти сведения также следует предоставлять приложениям, выполняющим собственную компоновку и нуждающимся в точных измерениях различных характеристик глифов, таких как ширина продвижения и высота строки, при применении различных параметров рендеринга текста.
Возвращает:
ссылку на экземпляр FontRenderContext.
С версии:
1.2
См. также:
  • FontRenderContext
  • Font.createGlyphVector(FontRenderContext, String)
  • TextLayout

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API