Класс Graphics
- Непосредственные известные подклассы:
-
DebugGraphics,Graphics2D
public abstract class Graphics extends Object
Graphics — это абстрактный базовый класс для всех контекстов графики, которые позволяют приложению рисовать на компонентах, реализованных на различных устройствах, а также на внеэкранных изображениях. Объект Graphics инкапсулирует информацию о состоянии, необходимую для основных операций рендеринга, поддерживаемых Java. Эта информация о состоянии включает следующие свойства:
- Объект
Component, на котором нужно рисовать. - Начало системы координат для рендеринга и обрезки.
- Текущая область обрезки.
- Текущий цвет.
- Текущий шрифт.
- Текущая логическая функция операции с пикселями (XOR или рисование).
- Текущий цвет для XOR-замены (см.
setXORMode(java.awt.Color)).
Координаты бесконечно тонкие и лежат между пикселями устройства вывода. Операции, рисующие контур фигуры, работают путём перемещения бесконечно тонкой траектории между пикселями с пиксельной ручкой, которая свисает вниз и вправо от точки привязки на траектории. Операции заполнения фигуры работают путём заполнения внутренней части этой бесконечно тонкой траектории. Операции рендеринга горизонтального текста отображают восходящую часть глифов символов полностью над базовой линией.
Графическая ручка свисает вниз и вправо от траектории, которую она пересекает. Это имеет следующие последствия:
- Если вы рисуете фигуру, которая покрывает заданный прямоугольник, эта фигура занимает на одну строку пикселей больше справа и снизу по сравнению с заполнением фигуры, ограниченной тем же прямоугольником.
- Если вы рисуете горизонтальную линию вдоль той же координаты y, что и базовая линия строки текста, эта линия рисуется полностью ниже текста, за исключением любых спусков.
Все координаты, которые появляются в качестве аргументов методам этого объекта Graphics, считаются относительными к началу системы координат этого объекта Graphics до вызова метода.
Все операции рендеринга изменяют только пиксели, которые лежат внутри области, ограниченной текущей областью обрезки, заданной Shape в пространстве пользователя и контролируемой программой с помощью объекта Graphics. Эта область обрезки пользователя преобразуется в пространство устройства и объединяется с областью обрезки устройства, которая определяется видимостью окон и пределами устройства. Объединение области обрезки пользователя и области обрезки устройства определяет составную область обрезки, которая определяет окончательную область обрезки. Система рендеринга не может изменять область обрезки пользователя, чтобы отразить полученную составную область обрезки. Область обрезки пользователя может быть изменена только с помощью методов setClip или clipRect. Все рисование или вывод выполняется в текущем цвете, с использованием текущего режима рисования и текущего шрифта.
- С:
- 1.0
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый объект Graphics. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
clearRect |
Очищает указанный прямоугольник, заполняя его цветом фона текущей области рисования. |
abstract void |
clipRect |
Пересекает текущую область обрезки с указанным прямоугольником. |
abstract void |
copyArea |
Копирует область компонента на расстояние, заданное dx и dy. |
abstract Graphics |
create() |
Создаёт новый объект Graphics, являющийся копией этого объекта Graphics. |
Graphics |
create |
Создаёт новый объект Graphics, основанный на этом объекте Graphics, но с новым смещением и областью обрезки. |
abstract void |
dispose() |
Освобождает контекст рисования и все используемые системные ресурсы. |
void |
draw3DRect |
Рисует 3D-подсвеченный контур заданного прямоугольника. |
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 |
Рисует линию между точками (x1, y1) и (x2, y2) в системе координат этого контекста рисования, используя текущий цвет. |
abstract void |
drawOval |
Рисует контур овала. |
abstract void |
drawPolygon |
Рисует замкнутый многоугольник, определяемый массивами координат x и y. |
void |
drawPolygon |
Рисует контур многоугольника, определяемого указанным объектом Polygon. |
abstract void |
drawPolyline |
Рисует последовательность соединённых линий, определяемых массивами координат x и y. |
void |
drawRect |
Рисует контур указанного прямоугольника. |
abstract void |
drawRoundRect |
Рисует прямоугольник с закруглёнными углами, используя текущий цвет контекста рисования. |
abstract void |
drawString |
Рисует текст из указанной строки, используя текущий шрифт и цвет контекста рисования. |
abstract void |
drawString |
Отображает текст указанного итератора, применяя его атрибуты в соответствии со спецификацией класса TextAttribute. |
void |
fill3DRect |
Рисует 3D-подсвеченный прямоугольник, заполненный текущим цветом. |
abstract void |
fillArc |
Заполняет круговую или эллиптическую дугу, покрывающую указанный прямоугольник. |
abstract void |
fillOval |
Заполняет овал, ограниченный указанным прямоугольником, текущим цветом. |
abstract void |
fillPolygon |
Заполняет замкнутый многоугольник, определяемый массивами координат x и y. |
void |
fillPolygon |
Заполняет многоугольник, определённый объектом Polygon, текущим цветом контекста рисования. |
abstract void |
fillRect |
Заполняет указанный прямоугольник. |
abstract void |
fillRoundRect |
Заполняет указанный прямоугольник с закруглёнными углами текущим цветом. |
void |
finalize() |
Метод устарел, подлежит удалению: Этот элемент API может быть удалён в будущей версии. Финализация устарела и подлежит удалению. |
abstract Shape |
getClip() |
Возвращает текущую область обрезки. |
abstract Rectangle |
getClipBounds() |
Возвращает ограничивающий прямоугольник текущей области обрезки. |
Rectangle |
getClipBounds |
Возвращает ограничивающий прямоугольник текущей области обрезки. |
Rectangle |
getClipRect() |
Устарел. Начиная с версии JDK 1.1, заменён на getClipBounds(). |
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() |
Возвращает объект String, представляющий значение этого объекта Graphics. |
abstract void |
translate |
Смещает начало системы координат контекста рисования в точку (x, y) в текущей системе координат. |
Подробное описание конструкторов
Graphics
protected Graphics()
Graphics. Этот конструктор является конструктором по умолчанию для контекста графики. Поскольку Graphics является абстрактным классом, приложения не могут напрямую вызывать этот конструктор. Контексты графики получаются из других контекстов графики или создаются путём вызова getGraphics на компоненте.
- См. также:
Подробное описание методов
create
public abstract Graphics create()
Graphics, который является копией этого объекта Graphics.- Возвращает:
- новый контекст графики, являющийся копией этого контекста графики.
create
public Graphics create(int x, int y, int width, int height)
Graphics на основе этого объекта Graphics, но с новым смещением и областью обрезки. Начало координат нового объекта Graphics смещено в указанную точку (x, y). Его область обрезки определяется пересечением исходной области обрезки и указанного прямоугольника. Все аргументы интерпретируются в системе координат исходного объекта Graphics. Новый контекст графики идентичен исходному, за исключением двух моментов: - Новый контекст графики смещён на (x, y). То есть, точка (
0,0) в новом контексте графики соответствует точке (x, y) в исходном контексте графики. - Новый контекст графики имеет дополнительный прямоугольник обрезки в дополнение к любому (смещённому) прямоугольнику обрезки, унаследованному от исходного контекста графики. Начало координат нового прямоугольника обрезки находится в точке (
0,0), а его размеры задаются аргументамиwidthиheight.
- Параметры:
-
x- координата x. -
y- координата y. -
width- ширина прямоугольника обрезки. -
height- высота прямоугольника обрезки. - Возвращает:
- новый контекст графики.
- См. также:
translate
public abstract void translate(int x, int y)
- Параметры:
-
x- координата x. -
y- координата y.
getColor
public abstract Color getColor()
- Возвращает:
- текущий цвет этого контекста графики.
- См. также:
setColor
public abstract void setColor(Color c)
- Параметры:
-
c- новый цвет отрисовки. - См. также:
setPaintMode
public abstract void setPaintMode()
setXORMode
public abstract void setXORMode(Color c1)
При выполнении операций отрисовки пиксели, которые имеют текущий цвет, изменяются на указанный цвет, и наоборот.
Пиксели, которые имеют цвета, отличные от этих двух цветов, изменяются непредсказуемым, но обратимым образом; если одна и та же фигура рисуется дважды, все пиксели восстанавливаются до своих исходных значений.
- Параметры:
-
c1- цвет чередования XOR
getFont
public abstract Font getFont()
- Возвращает:
- текущий шрифт этого контекста графики.
- См. также:
setFont
public abstract void setFont(Font font)
- Параметры:
-
font- шрифт. - См. также:
getFontMetrics
public FontMetrics getFontMetrics()
- Возвращает:
- метрики шрифта текущего шрифта этого контекста графики.
- См. также:
getFontMetrics
public abstract FontMetrics getFontMetrics(Font f)
- Параметры:
-
f- указанный шрифт - Возвращает:
- метрики шрифта для указанного шрифта.
- См. также:
getClipBounds
public abstract Rectangle getClipBounds()
setClip(null), этот метод возвращает null. Координаты в прямоугольнике относятся к началу координат системы координат этого контекста графики.- Возвращает:
- прямоугольник, ограничивающий текущую область обрезки, или
null, если область обрезки не установлена. - Since:
- 1.1
- См. также:
clipRect
public abstract void clipRect(int x, int y, int width, int height)
setClip(null), указанный прямоугольник становится новой областью обрезки. Этот метод устанавливает пользовательскую область обрезки, которая независима от обрезки, связанной с границами устройства и видимостью окна. Этот метод может использоваться только для уменьшения текущей области обрезки. Чтобы увеличить текущую область обрезки, используйте любой из методов setClip. Операции отрисовки не оказывают никакого влияния за пределами области обрезки.- Параметры:
-
x- координата x прямоугольника для пересечения с областью обрезки -
y- координата y прямоугольника для пересечения с областью обрезки -
width- ширина прямоугольника для пересечения с областью обрезки -
height- высота прямоугольника для пересечения с областью обрезки - См. также:
setClip
public abstract void setClip(int x, int y, int width, int height)
- Параметры:
-
x- координата x нового прямоугольника обрезки. -
y- координата y нового прямоугольника обрезки. -
width- ширина нового прямоугольника обрезки. -
height- высота нового прямоугольника обрезки. - С:
- 1.1
- См. также:
getClip
public abstract Shape getClip()
setClip(null), этот метод возвращает null.- Возвращает:
- объект
Shape, представляющий текущую область обрезки, илиnull, если фрагмент обрезки не установлен. - С:
- 1.1
- См. также:
setClip
public abstract void setClip(Shape clip)
Shape, могут использоваться для установки обрезки. Единственные объекты Shape, которые гарантированно поддерживаются, это объекты Shape, полученные через метод getClip, и объекты Rectangle. Этот метод устанавливает фрагмент обрезки пользователя, который независим от обрезки, связанной с границами устройства и видимостью окна.- Параметры:
-
clip-Shapeдля установки обрезки. Передачаnullочищает текущуюclip. - С:
- 1.1
- См. также:
copyArea
public abstract void copyArea(int x, int y, int width, int height, int dx, int dy)
dx и dy. Начиная с точки, заданной x и y, этот метод копирует вниз и вправо. Для копирования области компонента влево или вверх укажите отрицательное значение для dx или dy. Если часть прямоугольника источника находится за пределами границ компонента или скрыта другим окном или компонентом, copyArea не сможет скопировать соответствующие пиксели. Область, которая пропущена, может быть обновлена вызовом метода paint компонента.- Параметры:
-
x- координата x прямоугольника источника. -
y- координата y прямоугольника источника. -
width- ширина прямоугольника источника. -
height- высота прямоугольника источника. -
dx- горизонтальное расстояние для копирования пикселей. -
dy- вертикальное расстояние для копирования пикселей.
drawLine
public abstract void drawLine(int x1, int y1, int x2, int y2)
(x1, y1) и (x2, y2) в системе координат текущего контекста графики.- Параметры:
-
x1- координата x первой точки. -
y1- координата y первой точки. -
x2- координата x второй точки. -
y2- координата y второй точки.
fillRect
public abstract void fillRect(int x, int y, int width, int height)
x и x + width - 1. Верхний и нижний края находятся в y и y + height - 1. Результирующий прямоугольник занимает область width пикселей по ширине и height пикселей по высоте. Прямоугольник заполняется текущим цветом контекста графики.- Параметры:
-
x- координата x прямоугольника для заполнения. -
y- координата y прямоугольника для заполнения. -
width- ширина прямоугольника для заполнения. -
height- высота прямоугольника для заполнения. - См. также:
drawRect
public void drawRect(int x, int y, int width, int height)
x и x + width. Верхний и нижний края находятся в y и y + height. Прямоугольник рисуется с использованием текущего цвета контекста графики.- Параметры:
-
x- координата x прямоугольника для рисования. -
y- координата y прямоугольника для рисования. -
width- ширина прямоугольника для рисования. -
height- высота прямоугольника для рисования. - См. также:
clearRect
public abstract void clearRect(int x, int y, int width, int height)
Начиная с Java 1.1, цвет фона внеэкранных изображений может зависеть от системы. Приложения должны использовать setColor, за которым следует fillRect, чтобы гарантировать, что внеэкранное изображение очищается до определенного цвета.
- Параметры:
-
x- координата x прямоугольника для очистки. -
y- координата y прямоугольника для очистки. -
width- ширина прямоугольника для очистки. -
height- высота прямоугольника для очистки. - См. также:
drawRoundRect
public abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
x и x + width соответственно. Верхние и нижние края прямоугольника находятся в y и y + height.- Параметры:
-
x- координата x прямоугольника для рисования. -
y- координата y прямоугольника для рисования. -
width- ширина прямоугольника для рисования. -
height- высота прямоугольника для рисования. -
arcWidth- горизонтальный диаметр дуги в четырёх углах. -
arcHeight- вертикальный диаметр дуги в четырёх углах. - См. также:
fillRoundRect
public abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
x и x + width - 1 соответственно. Верхние и нижние края прямоугольника находятся в y и y + height - 1.- Параметры:
-
x- координата x прямоугольника для заполнения. -
y- координата y прямоугольника для заполнения. -
width- ширина прямоугольника для заполнения. -
height- высота прямоугольника для заполнения. -
arcWidth- горизонтальный диаметр дуги в четырёх углах. -
arcHeight- вертикальный диаметр дуги в четырёх углах. - См. также:
draw3DRect
public void draw3DRect(int x, int y, int width, int height, boolean raised)
Цвета, используемые для эффекта выделения, определяются на основе текущего цвета. Результирующий прямоугольник занимает область размером width + 1 пикселей по ширине и height + 1 пикселей по высоте.
- Parameters:
-
x- координата x прямоугольника, который нужно нарисовать. -
y- координата y прямоугольника, который нужно нарисовать. -
width- ширина прямоугольника, который нужно нарисовать. -
height- высота прямоугольника, который нужно нарисовать. -
raised- логическое значение, определяющее, выступает ли прямоугольник над поверхностью или углубляется в неё. - See Also:
fill3DRect
public void fill3DRect(int x, int y, int width, int height, boolean raised)
- Parameters:
-
x- координата x прямоугольника, который нужно заполнить. -
y- координата y прямоугольника, который нужно заполнить. -
width- ширина прямоугольника, который нужно заполнить. -
height- высота прямоугольника, который нужно заполнить. -
raised- логическое значение, определяющее, выступает ли прямоугольник над поверхностью или углубляется в неё. - See Also:
drawOval
public abstract void drawOval(int x, int y, int width, int height)
x, y, width и height. Овал занимает область размером width + 1 пикселей по ширине и height + 1 пикселей по высоте.
- Parameters:
-
x- координата x верхнего левого угла овала, который нужно нарисовать. -
y- координата y верхнего левого угла овала, который нужно нарисовать. -
width- ширина овала, который нужно нарисовать. -
height- высота овала, который нужно нарисовать. - See Also:
fillOval
public abstract void fillOval(int x, int y, int width, int height)
- Parameters:
-
x- координата x верхнего левого угла овала, который нужно заполнить. -
y- координата y верхнего левого угла овала, который нужно заполнить. -
width- ширина овала, который нужно заполнить. -
height- высота овала, который нужно заполнить. - See Also:
drawArc
public abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
Результирующая дуга начинается с startAngle и продолжается на arcAngle градусов, используя текущий цвет. Углы интерпретируются таким образом, что 0 градусов находится в положении 3 часа. Положительное значение указывает против часовой стрелки, а отрицательное — по часовой стрелке.
Центр дуги — центр прямоугольника, начало которого (x, y), а размеры заданы аргументами width и height.
Результирующая дуга занимает область width + 1 пикселей по ширине и height + 1 пикселей по высоте.
Углы задаются относительно прямоугольника, не являющегося квадратным, таким образом, что 45 градусов всегда находится на прямой от центра эллипса до верхнего правого угла прямоугольника. В результате, если прямоугольник заметно длиннее по одной оси, чем по другой, углы начала и конца сегмента дуги будут смещены дальше по большей оси границ.
- Parameters:
-
x- координата x верхнего левого угла дуги, которую нужно нарисовать. -
y- координата y верхнего левого угла дуги, которую нужно нарисовать. -
width- ширина дуги, которую нужно нарисовать. -
height- высота дуги, которую нужно нарисовать. -
startAngle- начальный угол. -
arcAngle- угловое расширение дуги относительно начального угла. - See Also:
fillArc
public abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
Результирующая дуга начинается с startAngle и продолжается на arcAngle градусов. Углы интерпретируются таким образом, что 0 градусов находится в положении 3 часа. Положительное значение указывает против часовой стрелки, а отрицательное — по часовой стрелке.
Центр дуги — центр прямоугольника, начало которого (x, y), а размеры заданы аргументами width и height.
Результирующая дуга занимает область width + 1 пикселей по ширине и height + 1 пикселей по высоте.
Углы задаются относительно прямоугольника, не являющегося квадратным, таким образом, что 45 градусов всегда находится на прямой от центра эллипса до верхнего правого угла прямоугольника. В результате, если прямоугольник заметно длиннее по одной оси, чем по другой, углы начала и конца сегмента дуги будут смещены дальше по большей оси границ.
- Parameters:
-
x- координата x верхнего левого угла дуги, которую нужно заполнить. -
y- координата y верхнего левого угла дуги, которую нужно заполнить. -
width- ширина дуги, которую нужно заполнить. -
height- высота дуги, которую нужно заполнить. -
startAngle- начальный угол. -
arcAngle- угловое расширение дуги относительно начального угла. - See Also:
drawPolyline
public abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
- Parameters:
-
xPoints- массив точек x -
yPoints- массив точек y -
nPoints- общее количество точек - Since:
- 1.1
- See Also:
drawPolygon
public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
Этот метод рисует многоугольник, определённый nPoint отрезками, где первые nPoint - 1 отрезки являются отрезками от (xPoints[i - 1], yPoints[i - 1]) до (xPoints[i], yPoints[i]), для 1 ≤ i ≤ nPoints. Фигура автоматически закрывается, рисуя линию, соединяющую последнюю точку с первой, если эти точки различны.
- Parameters:
-
xPoints- массив координатx. -
yPoints- массив координатy. -
nPoints- общее количество точек. - See Also:
drawPolygon
public void drawPolygon(Polygon p)
Polygon.- Parameters:
-
p- многоугольник, который нужно нарисовать. - See Also:
fillPolygon
public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
Этот метод рисует многоугольник, определённый nPoint отрезками прямых, где первые nPoint - 1 отрезки прямых идут от (xPoints[i - 1], yPoints[i - 1]) до (xPoints[i], yPoints[i]), для 1 ≤ i ≤ nPoints. Фигура автоматически закрывается путём рисования отрезка, соединяющего последнюю точку с первой, если эти точки различны.
Площадь внутри многоугольника определяется с помощью правила заполнения «чёт-нечёт», также известного как правило чередования.
- Parameters:
-
xPoints- массив координатx. -
yPoints- массив координатy. -
nPoints- общее количество точек. - See Also:
fillPolygon
public void fillPolygon(Polygon p)
Площадь внутри многоугольника определяется с помощью правила заполнения «чёт-нечёт», также известного как правило чередования.
- Parameters:
-
p- многоугольник для заполнения. - See Also:
drawString
public abstract void drawString(String str, int x, int y)
- Parameters:
-
str- строка для рисования. -
x- координата x. -
y- координата y. - Throws:
-
NullPointerException- еслиstrявляетсяnull. - See Also:
drawString
public abstract void drawString(AttributedCharacterIterator iterator, int x, int y)
TextAttribute. Базовая линия самого левого символа находится в позиции (x, y) в системе координат этого контекста графики.
- Parameters:
-
iterator- итератор, текст которого необходимо отобразить -
x- координата x. -
y- координата y. - Throws:
-
NullPointerException- еслиiteratorявляетсяnull. - See Also:
drawChars
public void drawChars(char[] data, int offset, int length, int x, int y)
- Parameters:
-
data- массив символов для рисования -
offset- начальный смещение в данных -
length- количество символов для рисования -
x- координата x базовой линии текста -
y- координата y базовой линии текста - Throws:
-
NullPointerException- еслиdataявляетсяnull. -
IndexOutOfBoundsException- еслиoffsetилиlengthменьше нуля, илиoffset+lengthбольше длины массиваdata. - See Also:
drawBytes
public void drawBytes(byte[] data, int offset, int length, int x, int y)
Использование этого метода не рекомендуется, так как каждый байт интерпретируется как кодовая точка Юникода в диапазоне от 0 до 255, и поэтому может быть использован только для рисования латинских символов в этом диапазоне.
- Parameters:
-
data- данные для рисования -
offset- начальное смещение в данных -
length- количество байтов для рисования -
x- координата x базовой линии текста -
y- координата y базовой линии текста - Throws:
-
NullPointerException- еслиdataявляетсяnull. -
IndexOutOfBoundsException- еслиoffsetилиlengthменьше нуля, илиoffset+lengthбольше длины массиваdata. - See Also:
drawImage
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
Этот метод возвращает результат немедленно, даже если полное изображение ещё не загружено и не отрисовано с учётом дithering и преобразования для текущего устройства вывода.
Если изображение полностью загружено и его пиксели больше не изменяются, то drawImage возвращает true. В противном случае, drawImage возвращает false, и по мере того, как становится доступно больше изображения или пришло время отобразить другой кадр анимации, процесс загрузки изображения уведомляет указанный наблюдатель изображения.
- Parameters:
-
img- указанное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
x- координата x. -
y- координата y. -
observer- объект, который будет уведомлен по мере обработки большего количества изображения. - Returns:
-
false, если пиксели изображения всё ещё изменяются;trueв противном случае. - See Also:
drawImage
public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
Изображение отображается внутри заданного прямоугольника в системе координат этого контекста графики, и масштабируется при необходимости. Прозрачные пиксели не влияют на уже существующие пиксели.
Этот метод возвращает результат немедленно в любом случае, даже если всё изображение ещё не масштабировано, не отрисовано с учётом дithering и не преобразовано для текущего устройства вывода. Если текущее представление вывода ещё не завершено, то drawImage возвращает false. По мере поступления большего количества изображения, процесс загрузки изображения уведомляет наблюдатель изображения, вызывая его метод imageUpdate.
Масштабированная версия изображения не обязательно будет доступна немедленно только потому, что не масштабированная версия изображения построена для этого устройства вывода. Каждый размер изображения может кэшироваться отдельно и генерироваться из исходных данных в отдельной последовательности производства изображения.
- Parameters:
-
img- указанное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
x- координата x. -
y- координата y. -
width- ширина прямоугольника. -
height- высота прямоугольника. -
observer- объект, который будет уведомлен по мере обработки большего количества изображения. - Returns:
-
false, если пиксели изображения всё ещё изменяются;trueв противном случае. - See Also:
drawImage
public abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
Эта операция эквивалентна заполнению прямоугольника шириной и высотой заданного изображения указанным цветом, а затем отображению изображения поверх него, но возможно более эффективна.
Этот метод возвращает значение немедленно во всех случаях, даже если изображение полностью не загружено, не побайтовое и не преобразовано для текущего устройства вывода.
Если изображение полностью загружено и его пиксели больше не изменяются, то drawImage возвращает true. В противном случае, drawImage возвращает false, и по мере доступности большей части изображения или при необходимости отображения следующей кадра анимации, процесс загрузки изображения уведомляет указанного наблюдателя за изображением.
- Parameters:
-
img- заданное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
x- координата x. -
y- координата y. -
bgcolor- цвет фона для заливки под непрозрачные части изображения. -
observer- объект, который будет уведомлен при преобразовании большей части изображения. - Returns:
-
false, если пиксели изображения все еще изменяются;trueв противном случае. - See Also:
drawImage
public abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
Изображение отображается внутри указанного прямоугольника в координатах текущего графического контекста и масштабируется при необходимости. Прозрачные пиксели отображаются в указанном цвете фона. Эта операция эквивалентна заполнению прямоугольника шириной и высотой заданного изображения указанным цветом, а затем отображению изображения поверх него, но возможно более эффективна.
Этот метод возвращает значение немедленно во всех случаях, даже если всё изображение не было масштабировано, побайтовано и преобразовано для текущего устройства вывода. Если текущее представление вывода ещё не завершено, то drawImage возвращает false. По мере доступности большей части изображения, процесс загрузки изображения уведомляет указанного наблюдателя изображения.
Масштабированная копия изображения не обязательно будет доступна немедленно, даже если не масштабированная копия изображения уже создана для данного устройства вывода. Каждый размер изображения может быть кэширован отдельно и сгенерирован из исходных данных в отдельной последовательности производства изображений.
- Parameters:
-
img- заданное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
x- координата x. -
y- координата y. -
width- ширина прямоугольника. -
height- высота прямоугольника. -
bgcolor- цвет фона для заливки под непрозрачные части изображения. -
observer- объект, который будет уведомлен при преобразовании большей части изображения. - Returns:
-
false, если пиксели изображения все еще изменяются;trueв противном случае. - See Also:
drawImage
public abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
Этот метод возвращает немедленно в любом случае, даже если область изображения, подлежащая отображению, ещё не масштабирована, побайтова и преобразована для текущего устройства вывода. Если текущее представление вывода ещё не завершено, то drawImage возвращает false. По мере доступности больше части изображения, процесс загрузки изображения уведомляет указанного наблюдателя за изображением.
Этот метод всегда использует не масштабированную версию изображения для отрисовки масштабированного прямоугольника и выполняет требуемое масштабирование на лету. Он не использует кэшированную, масштабированную версию изображения для этой операции. Масштабирование изображения из источника в пункт назначения выполняется так, что первая координата прямоугольника источника отображается в первой координате прямоугольника назначения, а вторая координата источника отображается во второй координате назначения. Подизображение масштабируется и перевертывается по мере необходимости, чтобы сохранить эти сопоставления.
- Parameters:
-
img- заданное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
dx1- координата x первого угла прямоугольника назначения. -
dy1- координата y первого угла прямоугольника назначения. -
dx2- координата x второго угла прямоугольника назначения. -
dy2- координата y второго угла прямоугольника назначения. -
sx1- координата x первого угла прямоугольника источника. -
sy1- координата y первого угла прямоугольника источника. -
sx2- координата x второго угла прямоугольника источника. -
sy2- координата y второго угла прямоугольника источника. -
observer- объект, который будет уведомлен при масштабировании и преобразовании большей части изображения. - Returns:
-
false, если пиксели изображения все еще изменяются;trueв противном случае. - Since:
- 1.1
- See Also:
drawImage
public 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)
Прозрачные пиксели отображаются в указанном цвете фона. Эта операция эквивалентна заполнению прямоугольника шириной и высотой заданного изображения указанным цветом, а затем отображению изображения поверх него, но возможно более эффективна.
Этот метод возвращает значение немедленно во всех случаях, даже если область изображения, подлежащая отображению, ещё не масштабирована, побайтова и преобразована для текущего устройства вывода. Если текущее представление вывода ещё не завершено, то drawImage возвращает false. По мере доступности больше части изображения, процесс загрузки изображения уведомляет указанного наблюдателя за изображением.
Этот метод всегда использует не масштабированную версию изображения для отрисовки масштабированного прямоугольника и выполняет требуемое масштабирование на лету. Он не использует кэшированную, масштабированную версию изображения для этой операции. Масштабирование изображения из источника в пункт назначения выполняется так, что первая координата прямоугольника источника отображается в первой координате прямоугольника назначения, а вторая координата источника отображается во второй координате назначения. Подизображение масштабируется и перевертывается по мере необходимости, чтобы сохранить эти сопоставления.
- Parameters:
-
img- заданное изображение для отображения. Этот метод ничего не делает, еслиimgравно null. -
dx1- координата x первого угла прямоугольника назначения. -
dy1- координата y первого угла прямоугольника назначения. -
dx2- координата x второго угла прямоугольника назначения. -
dy2- координата y второго угла прямоугольника назначения. -
sx1- координата x первого угла прямоугольника источника. -
sy1- координата y первого угла прямоугольника источника. -
sx2- координата x второго угла прямоугольника источника. -
sy2- координата y второго угла прямоугольника источника. -
bgcolor- цвет фона для заливки под непрозрачные части изображения. -
observer- объект, который будет уведомлен при масштабировании и преобразовании большей части изображения. - Returns:
-
false, если пиксели изображения все еще изменяются;trueв противном случае. - Since:
- 1.1
- See Also:
dispose
public abstract void dispose()
Graphics не может быть использован после того, как был вызван dispose. При выполнении Java-программы за короткий промежуток времени может быть создано большое количество объектов Graphics. Хотя процесс финализации сборщика мусора также удаляет те же системные ресурсы, предпочтительнее вручную освободить связанные ресурсы, вызвав этот метод, вместо того, чтобы полагаться на процесс финализации, который может не завершиться в течение длительного периода времени.
Графические объекты, которые предоставляются в качестве аргументов методам paint и update компонентов, автоматически освобождаются системой при возврате этих методов. Для повышения эффективности программисты должны вызывать dispose после завершения использования объекта Graphics только в том случае, если он был создан непосредственно из компонента или другого объекта Graphics.
- См. также:
finalize
@Deprecated(since="9", forRemoval=true) public void finalize()
Object.finalize() для получения информации о происхождении и подробностей о вариантах миграции.toString
getClipRect
@Deprecated public Rectangle getClipRect()
getClipBounds().- Возвращает:
- прямоугольник границ текущей области обрезки или
null, если область обрезки не установлена.
hitClip
public boolean hitClip(int x, int y, int width, int height)
- Параметры:
-
x- координата x прямоугольника для проверки на пересечение с областью обрезки -
y- координата y прямоугольника для проверки на пересечение с областью обрезки -
width- ширина прямоугольника для проверки на пересечение с областью обрезки -
height- высота прямоугольника для проверки на пересечение с областью обрезки - Возвращает:
-
true, если указанный прямоугольник пересекает границы текущей области обрезки;falseв противном случае.
getClipBounds
public Rectangle getClipBounds(Rectangle r)
getClipBounds тем, что вместо выделения нового используется существующий прямоугольник. Этот метод относится к пользовательской области обрезки, которая независима от обрезки, связанной с границами устройства и видимостью окна. Если ранее область обрезки не была установлена или если область обрезки была очищена с помощью setClip(null), этот метод возвращает указанный Rectangle.- Параметры:
-
r- прямоугольник, в который копируется текущая область обрезки. Любые текущие значения в этом прямоугольнике перезаписываются. - Возвращает:
- прямоугольник границ текущей области обрезки.
© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/Graphics.html