Класс GraphicsContext
public final class GraphicsContext extends Object
Canvas с помощью буфера. Каждое обращение помещает необходимые параметры в буфер, где они будут позже отрисованы на изображение узла Canvas потоком рендеринга в конце импульса.
Canvas содержит только один GraphicsContext и только один буфер. Если он не прикреплен к какой-либо сцене, то он может быть изменён любым потоком, при условии, что он используется только одним потоком за раз. После того, как узел Canvas прикреплён к сцене, его необходимо изменять в потоке приложения JavaFX.
Вызов любого метода на GraphicsContext считается изменением соответствующего Canvas и подчиняется тем же правилам потоков.
GraphicsContext также управляет стеком объектов состояния, которые могут быть сохранены или восстановлены в любое время.
GraphicsContext поддерживает следующие атрибуты рендеринга, которые влияют на различные подмножества методов рендеринга:
| Атрибут | Сохранять/восстанавливать? | Значение по умолчанию | Описание |
|---|---|---|---|
| Общие атрибуты рендеринга | |||
Clip | Да | Без обрезки | Антиалиасинговое пересечение различных областей обрезки, в пределах которых ограничено рендеринг. |
Global Alpha | Да | 1.0 | Значение непрозрачности, контролирующее видимость или затемнение каждой операции рендеринга. |
Global Blend Mode | Да | SRC_OVER | Значение перечисления BlendMode, которое контролирует способ композиции пикселей каждой операции рендеринга в существующее изображение. |
Transform | Да | Identity | Матрица аффинного преобразования 3x2 2D, которая контролирует способ отображения координат на логические пиксели изображения холста. |
Effect | Да | null | Применяемый индивидуально к каждой операции рендеринга Effect. |
| Атрибуты заливки | |||
Fill Paint | Да | BLACK | Paint, который применяется к внутренней части фигур в операции заливки. |
| Атрибуты обводки | |||
Stroke Paint | Да | BLACK | Paint, который применяется к границе фигур в операции обводки. |
Line Width | Да | 1.0 | Ширина обводки, применяемая к границе фигур в операции обводки. |
Line Cap | Да | SQUARE | Стиль конечных заглушек, применяемых к началу и концу каждого штриха и/или подпути в операции обводки. |
Line Join | Да | MITER | Стиль соединений, применяемых между отдельными сегментами в граничных путях фигур в операции обводки. |
Miter Limit | Да | 10.0 | Предельный коэффициент того, насколько далеко соединение типа MITER может распространяться в направлении острого угла между сегментами в граничном пути фигуры по отношению к ширине линии, прежде чем оно будет усечено до соединения типа BEVEL в операции обводки. |
Dashes | Да | null | Массив длин штрихов, которые будут применяться к сегментам на границе фигур в операции обводки. |
Dash Offset | Да | 0.0 | Расстояние смещения в массиве длин штрихов, с которого следует начать штриховку сегментов на границе фигур в операции обводки. |
| Атрибуты текста | |||
Font | Да | Default Font | Шрифт, используемый для всех операций заполнения и обводки текста. |
Text Align | Да | LEFT | Горизонтальное выравнивание текста относительно координаты X, указанной в операции с текстом. |
Text Baseline | Да | BASELINE | Вертикальное положение текста относительно координаты Y, указанной в операции с текстом. |
Font Smoothing | Да | GRAY | Тип сглаживания (антиалиасинга), применяемый к глифам шрифта для всех операций заполнения текста. |
| Атрибуты пути | |||
Current Path | Нет | Пустой путь | Путь, построенный с помощью различных методов построения путей для использования в различных операциях заполнения, обводки или обрезки пути. |
Fill Rule | Да | NON_ZERO | Метод, используемый для определения внутренней части путей для операции заполнения или обрезки пути. |
| Атрибуты изображения | |||
Image Smoothing | Да | true | Логическое состояние, которое включает или отключает сглаживание изображений для drawImage(all forms). |
Различные методы рендеринга на GraphicsContext используют следующие наборы атрибутов рендеринга:
| Метод | Общие атрибуты рендеринга | Атрибуты заливки | Атрибуты обводки | Атрибуты текста | Атрибуты пути | Атрибуты изображения |
|---|---|---|---|---|---|---|
| Рендеринг базовых фигур | ||||||
fillRect(), fillRoundRect(), fillOval(), fillArc() | Да | Да | Нет | Нет | Нет | Нет |
strokeLine(), strokeRect(), strokeRoundRect(), strokeOval(), strokeArc() | Да | Нет | Да | Нет | Нет | Нет |
clearRect() | Да [1] | Нет | Нет | Нет | Нет | Нет |
fillPolygon() | Да | Да | Нет | Нет | Да [2] | Нет |
strokePolygon(), strokePolyline() | Да | Нет | Да | Нет | Нет | Нет |
| [1] Только преобразование, обрезка и эффект применяются к clearRect() [2] Только правило заливки применяется к fillPolygon(), текущий путь не изменяется | ||||||
| Рендеринг текста | ||||||
fillText(), fillText(with maxWidth) | Да | Да | Нет | Да [3] | Нет | Нет |
strokeText(), strokeText(with maxWidth) | Да | Нет | Да | Да [3] | Нет | Нет |
| [3] Атрибут сглаживания шрифта применяется только к залитому тексту | ||||||
| Рендеринг пути | ||||||
beginPath(), moveTo(), lineTo(), quadraticCurveTo(), bezierCurveTo(), arc(), arcTo(), appendSVGPath(), closePath(), rect() | Да [4] | Нет | Нет | Нет | Нет | Нет |
fill() | Да [4] | Да | Нет | Нет | Да | Нет |
stroke() | Да [4] | Нет | Да | Нет | Да [5] | Нет |
clip() | Нет | Нет | Нет | Нет | Да | Нет |
| [4] Преобразование применяется только во время построения пути [5] Правило заливки используется только для fill() и clip() | ||||||
| Рендеринг изображения | ||||||
drawImage(all forms) | Да | Нет | Нет | Нет | Нет | Да |
| Разное | ||||||
applyEffect(), PixelWriter methods | Нет | Нет | Нет | Нет | Нет | Нет |
Пример:
import javafx.scene.*; import javafx.scene.paint.*; import javafx.scene.canvas.*; Group root = new Group(); Scene s = new Scene(root, 300, 300, Color.BLACK); final Canvas canvas = new Canvas(250,250); GraphicsContext gc = canvas.getGraphicsContext2D(); gc.setFill(Color.BLUE); gc.fillRect(75,75,100,100); root.getChildren().add(canvas);
- С момента:
- JavaFX 2.2
- См. также:
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
void |
appendSVGPath |
Добавляет строку SVG Path в текущую траекторию. |
void |
applyEffect |
Применяет заданный эффект ко всем границам холста и сохраняет результат обратно в тот же холст. |
void |
arc |
Добавляет элементы пути в текущую траекторию, чтобы создать дугу, которая использует градусы Евклида. |
void |
arcTo |
Добавляет сегменты в текущую траекторию, чтобы создать дугу. |
void |
beginPath() |
Сбрасывает текущую траекторию в пустое состояние. |
void |
bezierCurveTo |
Добавляет сегменты в текущую траекторию, чтобы создать кубическую кривую Безье. |
void |
clearRect |
Очищает часть холста прозрачным значением цвета. |
void |
clip() |
Пересекает текущую область обрезки с текущей траекторией и применяет ее к последующей операции рендеринга в качестве маски с антиалиасингом. |
void |
closePath() |
Закрывает траекторию. |
void |
drawImage |
Рисует изображение в заданной позиции x, y, используя ширину и высоту заданного изображения. |
void |
drawImage |
Рисует изображение в заданный прямоугольник назначения холста. |
void |
drawImage |
Рисует заданный прямоугольник источника заданного изображения в заданный прямоугольник назначения холста. |
void |
fill() |
Заливает траекторию текущей краской заливки. |
void |
fillArc |
Заливает дугу текущей краской заливки. |
void |
fillOval |
Заливает овал текущей краской заливки. |
void |
fillPolygon |
Заливает многоугольник с заданными точками текущей краской заливки. |
void |
fillRect |
Заливает прямоугольник текущей краской заливки. |
void |
fillRoundRect |
Заливает закруглённый прямоугольник текущей краской заливки. |
void |
fillText |
Заливает заданную строку текста в позиции x, y текущей краской заливки. |
void |
fillText |
Заливает текст и включает максимальную ширину строки. |
Canvas |
getCanvas() |
Получает Canvas, к которому GraphicsContext отправляет команды рисования. |
Effect |
getEffect |
Получает копию эффекта, который должен быть применён после следующего вызова рисования. |
Paint |
getFill() |
Получает текущее атрибут краски заливки. |
FillRule |
getFillRule() |
Получить атрибут правила заполнения для определения внутренности путей в операциях заливки и обрезки. |
Font |
getFont() |
Получает текущий шрифт. |
FontSmoothingType |
getFontSmoothingType() |
Получает текущий тип сглаживания шрифта. |
double |
getGlobalAlpha() |
Получает текущую глобальную прозрачность. |
BlendMode |
getGlobalBlendMode() |
Получает глобальный режим смешивания. |
StrokeLineCap |
getLineCap() |
Получает текущую обрезку линии контура. |
double[] |
getLineDashes() |
Получает копию текущего массива штриховой линии. |
double |
getLineDashOffset() |
Получает текущий смещение штриховой линии. |
StrokeLineJoin |
getLineJoin() |
Получает текущее соединение линии контура. |
double |
getLineWidth() |
Получает текущую ширину линии. |
double |
getMiterLimit() |
Получает текущее ограничение фаски. |
PixelWriter |
getPixelWriter() |
Возвращает объект PixelWriter, который можно использовать для изменения пикселей Canvas, связанного с этим GraphicsContext. |
Paint |
getStroke() |
Получает текущую линию. |
TextAlignment |
getTextAlign() |
Получает текущее значение TextAlignment. |
VPos |
getTextBaseline() |
Получает текущую базовую линию текста. |
Affine |
getTransform() |
Возвращает копию текущего преобразования. |
Affine |
getTransform |
Копирует текущее преобразование в предоставленный объект, создавая новый объект Affine, если он равен null, и возвращает объект, содержащий копию. |
boolean |
isImageSmoothing() |
Получает текущее состояние сглаживания изображений. |
boolean |
isPointInPath |
Возвращает true, если заданная точка x, y находится внутри траектории. |
void |
lineTo |
Добавляет сегменты в текущую траекторию, чтобы создать линию до заданной координаты x, y. |
void |
moveTo |
Выполняет команду перемещения для текущей траектории в заданную координату x, y. |
void |
quadraticCurveTo |
Добавляет сегменты в текущую траекторию, чтобы создать квадратичную кривую Безье. |
void |
rect |
Добавляет элементы пути в текущую траекторию, чтобы создать прямоугольник. |
void |
restore() |
Извлекает состояние из стека, устанавливая следующие атрибуты в их значение на момент помещения этого состояния в стек. |
void |
rotate |
Поворачивает текущее преобразование в градусах. |
void |
save() |
Сохраняет следующие атрибуты в стеке. |
void |
scale |
Масштабирует текущее преобразование на x, y. |
void |
setEffect |
Устанавливает эффект, который должен быть применён после следующего вызова рисования, или null для отключения эффектов. |
void |
setFill |
Устанавливает текущий атрибут краски заливки. |
void |
setFillRule |
Устанавливает атрибут правила заполнения для определения внутренности путей в операциях заливки или обрезки. |
void |
setFont |
Устанавливает текущий шрифт. |
void |
setFontSmoothingType |
Устанавливает текущий тип сглаживания шрифта. |
void |
setGlobalAlpha |
Устанавливает глобальную прозрачность текущего состояния. |
void |
setGlobalBlendMode |
Устанавливает глобальный режим смешивания. |
void |
setImageSmoothing |
Устанавливает состояние сглаживания изображения. |
void |
setLineCap |
Устанавливает текущую обрезку линии контура. |
void |
setLineDashes |
Устанавливает текущий образец штриховой линии контура, нормализованную копию аргумента. |
void |
setLineDashOffset |
Устанавливает смещение штриховой линии. |
void |
setLineJoin |
Устанавливает текущее соединение линии контура. |
void |
setLineWidth |
Устанавливает текущую ширину линии. |
void |
setMiterLimit |
Устанавливает текущее ограничение фаски. |
void |
setStroke |
Устанавливает текущий атрибут заливки контура. |
void |
setTextAlign |
Определяет выравнивание текста по горизонтали относительно начала текста x. |
void |
setTextBaseline |
Устанавливает текущую линию основания текста. |
void |
setTransform |
Устанавливает текущее преобразование. |
void |
setTransform |
Устанавливает текущее преобразование. |
void |
stroke() |
Отображает контур пути с текущей заливкой контура. |
void |
strokeArc |
Отображает дугу с текущей заливкой контура. |
void |
strokeLine |
Отображает линию с текущей заливкой контура. |
void |
strokeOval |
Отображает овал с текущей заливкой контура. |
void |
strokePolygon |
Отображает многоугольник с заданными точками с текущей заливкой контура. |
void |
strokePolyline |
Отображает ломаную линию с заданными точками с текущим атрибутом заливки контура. |
void |
strokeRect |
Отображает прямоугольник с текущей заливкой контура. |
void |
strokeRoundRect |
Отображает прямоугольник с закруглёнными углами с текущей заливкой контура. |
void |
strokeText |
Отображает заданную строку текста в позиции x, y с текущим атрибутом заливки контура. |
void |
strokeText |
Отображает текст с заливкой контура и максимальной шириной строки. |
void |
transform |
Объединяет входные данные с текущим преобразованием. |
void |
transform |
Объединяет входные данные с текущим преобразованием. |
void |
translate |
Переводит текущее преобразование на x, y. |
Подробное описание методов
getCanvas
public Canvas getCanvas()
Canvas, к которому GraphicsContext выдает команды рисования. Для GraphicsContext всегда существует только один Canvas.- Возвращает:
- Canvas холст, к которому данный
GraphicsContextвыдает команды рисования.
save
public void save()
- Глобальный альфа-канал
- Глобальная операция смешивания
- Преобразование
- Заливка
- Штриховка
- Ширина линии
- Тип окончания линии
- Тип соединения линии
- Предел среза
- Обрезка
- Шрифт
- Выравнивание текста
- Линия базовой линии текста
- Эффект
- Правило заливки
restore
public void restore()
- Глобальный альфа-канал
- Глобальная операция смешивания
- Преобразование
- Заливка
- Штриховка
- Ширина линии
- Тип окончания линии
- Тип соединения линии
- Предел среза
- Обрезка
- Шрифт
- Выравнивание текста
- Линия базовой линии текста
- Эффект
- Правило заливки
translate
public void translate(double x, double y)
- Параметры:
-
x- значение для перевода по оси x. -
y- значение для перевода по оси y.
scale
public void scale(double x, double y)
- Параметры:
-
x- значение для масштабирования по оси x. -
y- значение для масштабирования по оси y.
rotate
public void rotate(double degrees)
- Параметры:
-
degrees- значение в градусах для поворота текущего преобразования.
transform
public void transform(double mxx, double myx, double mxy, double myy, double mxt, double myt)
- Параметры:
-
mxx- - элемент масштабирования по оси X матрицы 3x4 -
myx- - элемент сдвига по оси Y матрицы 3x4 -
mxy- - элемент сдвига по оси X матрицы 3x4 -
myy- - элемент масштабирования по оси Y матрицы 3x4 -
mxt- - элемент перевода по оси X матрицы 3x4 -
myt- - элемент перевода по оси Y матрицы 3x4
transform
public void transform(Affine xform)
null обрабатывается как тождественное.- Параметры:
-
xform- Аффинное преобразование для конкатенации с текущим преобразованием или null.
setTransform
public void setTransform(double mxx, double myx, double mxy, double myy, double mxt, double myt)
- Параметры:
-
mxx- - элемент масштабирования по оси X матрицы 3x4 -
myx- - элемент сдвига по оси Y матрицы 3x4 -
mxy- - элемент сдвига по оси X матрицы 3x4 -
myy- - элемент масштабирования по оси Y матрицы 3x4 -
mxt- - элемент перевода по оси X матрицы 3x4 -
myt- - элемент перевода по оси Y матрицы 3x4
setTransform
public void setTransform(Affine xform)
- Параметры:
-
xform- Аффинное преобразование для копирования и использования в качестве текущего преобразования.
getTransform
public Affine getTransform(Affine xform)
Affine, если он null, и возвращает объект, содержащий копию.- Параметры:
-
xform- Объект преобразования, который будет использоваться для хранения результата. Если xform не null, то этот метод скопирует текущее преобразование в этот объект. Если xform null, будет создан новый объект преобразования. В любом случае, возвращаемое значение — копия текущего преобразования. - Возвращает:
- Копию текущего преобразования.
getTransform
public Affine getTransform()
- Возвращает:
- копию преобразования текущего состояния.
setGlobalAlpha
public void setGlobalAlpha(double alpha)
1.0. Можно установить любое действительное число, но только значения в диапазоне [0.0, 1.0] являются допустимыми, и при отрисовке будет использоваться ближайшее значение в этом диапазоне. Глобальный альфа-канал — это общий атрибут, используемый практически для всех методов отрисовки, как указано в таблице Атрибуты отрисовки.- Параметры:
-
alpha- новое значение альфа-канала, ограниченное значением[0.0, 1.0]при фактическом использовании.
getGlobalAlpha
public double getGlobalAlpha()
1.0. Глобальный альфа-канал — это общий атрибут, используемый практически для всех методов отрисовки, как указано в таблице Атрибуты отрисовки.- Возвращает:
- текущий глобальный альфа-канал.
setGlobalBlendMode
public void setGlobalBlendMode(BlendMode op)
SRC_OVER. Значение null будет проигнорировано, и текущее значение останется неизменным. Режим смешивания — это общий атрибут, используемый практически для всех методов отрисовки, как указано в таблице Атрибуты отрисовки.- Параметры:
-
op- устанавливаемый или nullBlendMode.
getGlobalBlendMode
public BlendMode getGlobalBlendMode()
SRC_OVER. Режим смешивания — это общий атрибут, используемый практически для всех методов отрисовки, как указано в таблице Атрибуты отрисовки.- Возвращает:
- глобальный
BlendModeтекущего состояния.
setFill
public void setFill(Paint p)
BLACK. Заливка — это атрибут заливки, используемый в методах заливки, как указано в таблице Атрибуты отрисовки. Значение null будет проигнорировано, и текущее значение останется неизменным.- Параметры:
-
p-Paint, используемый как атрибут заливкиPaintили null.
getFill
public Paint getFill()
BLACK. Заливка — это атрибут заливки, используемый в методах заливки, как указано в таблице Атрибуты отрисовки.- Возвращает:
Paint, используемый как атрибут заливкиPaint.
setStroke
public void setStroke(Paint p)
BLACK. Штрих — это атрибут штриха, используемый в методах штриховки, как указано в таблице Атрибуты отрисовки. Значение null будет проигнорировано, и текущее значение останется неизменным.- Параметры:
-
p-public Paint getStroke()
, используемый как атрибут штрихаBLACKили null.
getStroke
public Paint getStroke()
BLACK. Штрих — это атрибут штриха, используемый в методах штриховки, как указано в таблице Атрибуты отрисовки.- Возвращает:
Paint, используемый как атрибут штрихаPaint.
УстановитьТолщинуЛинии
public void setLineWidth(double lw)
1.0. Толщина линии является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Значение бесконечности или не положительное значение вне диапазона (0, +inf) будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
lw- значение в диапазоне {0-положительная бесконечность}, любое другое значение будет проигнорировано, и значение останется без изменений.
ПолучитьТолщинуЛинии
public double getLineWidth()
1.0. Толщина линии является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
- значение от 0 до бесконечности.
УстановитьТипЗавершенияЛинии
public void setLineCap(StrokeLineCap cap)
SQUARE. Завершение линии является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Значение null будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
cap-StrokeLineCapсо значением Butt, Round или Square или null.
ПолучитьТипЗавершенияЛинии
public StrokeLineCap getLineCap()
SQUARE. Завершение линии является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
-
StrokeLineCapсо значением Butt, Round или Square.
УстановитьТипСоединенияЛинии
public void setLineJoin(StrokeLineJoin join)
StrokeLineJoin.MITER. Соединение линий является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Значение null будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
join-StrokeLineJoinсо значением Miter, Bevel или Round или null.
ПолучитьТипСоединенияЛинии
public StrokeLineJoin getLineJoin()
StrokeLineJoin.MITER. Соединение линий является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
-
StrokeLineJoinсо значением Miter, Bevel или Round.
УстановитьПределФаски
public void setMiterLimit(double ml)
10.0. Предел фаски является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Значение бесконечности или не положительное значение вне диапазона (0, +inf) будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
ml- значение предела фаски от 0 до положительной бесконечности, любое другое значение будет проигнорировано, и значение останется без изменений.
ПолучитьПределФаски
public double getMiterLimit()
10.0. Предел фаски является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
- значение предела фаски в диапазоне
0.0-positive infinity
УстановитьШтриховуюЛинию
public void setLineDashes(double... dashes)
null. Массив штрихов является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Если массив null или пустой или содержит все 0 элементы, то штриховка будет отключена, и текущий массив штрихов будет установлен на null. Если какой-либо элемент массива является отрицательным, бесконечным или значением NaN вне диапазона [0, +inf), то весь массив будет проигнорирован, и текущий массив штрихов останется без изменений. Если массив имеет нечетную длину, он будет обрабатываться как две копии массива, добавленные друг к другу.- Параметры:
-
dashes- массив конечных неотрицательных длин штрихов - С:
- JavaFX 8u40
ПолучитьМассивШтрихов
public double[] getLineDashes()
null. Массив может быть нормализован тестовыми функциями валидации в методе setLineDashes(double...). Массив штрихов является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
- копию текущего массива штрихов.
- С:
- JavaFX 8u40
УстановитьСмещениеШтриховки
public void setLineDashOffset(double dashOffset)
0.0. Смещение штриховки является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга. Значение бесконечности или NaN вне диапазона (-inf, +inf) будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
dashOffset- смещение штриховки в диапазоне(-inf, +inf) - С:
- JavaFX 8u40
ПолучитьСмещениеШтриховки
public double getLineDashOffset()
0.0. Смещение штриховки является атрибутом штриха, используемым для любых методов штриховки, как указано в таблице Атрибутов рендеринга.- Возвращает:
- смещение штриховки в диапазоне
(-inf, +inf) - С:
- JavaFX 8u40
УстановитьШрифт
public void setFont(Font f)
Font.getDefault(). Шрифт является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов рендеринга. Значение null будет проигнорировано, и текущее значение останется без изменений.- Параметры:
-
f- шрифт или null.
ПолучитьШрифт
public Font getFont()
Font.getDefault(). Шрифт является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов рендеринга.- Возвращает:
- шрифт
УстановитьТипСглаживанияШрифта
public void setFontSmoothingType(FontSmoothingType fontsmoothing)
GRAY. Тип сглаживания шрифта является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов рендеринга. Значение null будет проигнорировано, и текущее значение останется без изменений. Примечание, что значение FontSmoothingType LCD поддерживается только на непрозрачном фоне. LCD текст обычно отображается как GRAY текст на прозрачных или частично прозрачных пикселях, и в некоторых реализациях он может вообще не поддерживаться на Canvas, так как необходимая поддержка отсутствует для поверхностей, содержащих альфа-канал, как у всех Canvas объектов.
- Параметры:
-
fontsmoothing-FontSmoothingTypeили null - С:
- JavaFX 8u40
ПолучитьТипСглаживанияШрифта
public FontSmoothingType getFontSmoothingType()
GRAY. Тип сглаживания шрифта является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов рендеринга.- Возвращает:
-
FontSmoothingType - С:
- JavaFX 8u40
setTextAlign
public void setTextAlign(TextAlignment align)
x. Значение по умолчанию — LEFT. Выравнивание текста — это текстовый атрибут, используемый для любых текстовых методов, как указано в таблице атрибутов отрисовки LEFT. Пусть горизонтальные границы представляют собой логическую ширину одной строки текста. Каждая строка текста имеет отдельные горизонтальные границы.
Тогда выравнивание по горизонтали задается следующим образом:
- Слева: левый край горизонтальных границ будет находиться в
x. - По центру: центр, находящийся посередине между левым и правым краем, горизонтальных границ будет находиться в
x. - Справа: правый край горизонтальных границ будет находиться в
x.
Примечание: Canvas не поддерживает перенос строк, поэтому выравнивание текста по ширине идентично выравниванию по левому краю.
Значение null будет проигнорировано, и текущее значение останется неизменным.
- Parameters:
-
align-TextAlignmentсо значениями Left, Center, Right или null.
getTextAlign
public TextAlignment getTextAlign()
TextAlignment. Значение по умолчанию — LEFT. Выравнивание текста — это текстовый атрибут, используемый для любых текстовых методов, как указано в таблице атрибутов отрисовки LEFT.- Returns:
-
TextAlignmentсо значениями Left, Center, Right или Justify.
setTextBaseline
public void setTextBaseline(VPos baseline)
BASELINE. Базовая линия текста — это текстовый атрибут, используемый для любых текстовых методов, как указано в таблице атрибутов отрисовки BASELINE. Значение null будет проигнорировано, и текущее значение останется неизменным.- Parameters:
-
baseline-VPosсо значениями Top, Center, Baseline или Bottom или null.
getTextBaseline
public VPos getTextBaseline()
BASELINE. Базовая линия текста — это текстовый атрибут, используемый для любых текстовых методов, как указано в таблице атрибутов отрисовки BASELINE.- Returns:
-
VPosсо значениями Top, Center, Baseline или Bottom.
fillText
public void fillText(String text, double x, double y)
null будет проигнорировано. Этот метод будет затронут любым из общих глобальных, заливки или текстовых атрибутов, как указано в таблице атрибутов отрисовки.
- Parameters:
-
text- строка текста или null. -
x- позиция по оси x. -
y- позиция по оси y.
strokeText
public void strokeText(String text, double x, double y)
null будет проигнорировано. Этот метод будет затронут любым из общих глобальных, контурных или текстовых атрибутов, как указано в таблице атрибутов отрисовки.
- Parameters:
-
text- строка текста или null. -
x- позиция по оси x. -
y- позиция по оси y.
fillText
public void fillText(String text, double x, double y, double maxWidth)
null будет проигнорировано. Этот метод будет затронут любым из общих глобальных, заливки или текстовых атрибутов, как указано в таблице атрибутов отрисовки.
- Parameters:
-
text- строка текста или null. -
x- позиция по оси x. -
y- позиция по оси y. -
maxWidth- максимальная ширина строки текста.
strokeText
public void strokeText(String text, double x, double y, double maxWidth)
null будет проигнорировано. Этот метод будет затронут любым из общих глобальных, контурных или текстовых атрибутов, как указано в таблице атрибутов отрисовки.
- Parameters:
-
text- строка текста или null. -
x- позиция по оси x. -
y- позиция по оси y. -
maxWidth- максимальная ширина строки текста.
setFillRule
public void setFillRule(FillRule fillRule)
FillRule.NON_ZERO. Значение null будет проигнорировано, и текущее значение останется неизменным. Правило заливки — это атрибут контура, используемый для любых методов заливки или обрезки контура, как указано в таблице атрибутов отрисовки FillRule.NON_ZERO.- Parameters:
-
fillRule-FillRuleсо значением Even_odd или Non_zero или null.
getFillRule
public FillRule getFillRule()
FillRule.NON_ZERO. Правило заливки — это атрибут контура, используемый для любых методов заливки или обрезки контура, как указано в таблице атрибутов отрисовки FillRule.NON_ZERO.- Returns:
- текущее правило заливки.
setImageSmoothing
public void setImageSmoothing(boolean imageSmoothing)
drawImage(all forms), как указано в таблице атрибутов отрисовки drawImage(all forms).Если сглаживание изображений включено
true, изображения будут масштабироваться с помощью фильтрации более высокого качества при преобразовании или масштабировании исходного изображения для соответствия целевому прямоугольнику.Если сглаживание изображений выключено
false, изображения будут масштабироваться без фильтрации (или с использованием фильтрации более низкого качества) при преобразовании или масштабировании исходного изображения для соответствия целевому прямоугольнику.- Значение по умолчанию:
true- Parameters:
-
imageSmoothing-trueдля включения илиfalseдля выключения сглаживания - Since:
- 12
isImageSmoothing
public boolean isImageSmoothing()
- Значение по умолчанию:
true- Returns:
- состояние сглаживания изображения
- Since:
- 12
beginPath
public void beginPath()
public void beginPath(), и не затрагивается операциями
save() и restore().moveTo
public void moveTo(double x0, double y0)
public void moveTo(double x0, double y0)и не затрагивается операциями
save() и restore().- Parameters:
-
x0- положение X для команды перемещения. -
y0- положение Y для команды перемещения.
lineTo
public void lineTo(double x1, double y1)
public void lineTo(double x1, double y1)и не затрагивается операциями
save() и restore().- Parameters:
-
x1- координата X конечной точки линии. -
y1- координата Y конечной точки линии.
quadraticCurveTo
public void quadraticCurveTo(double xc, double yc, double x1, double y1)
save() и restore().- Parameters:
-
xc- координата X контрольной точки -
yc- координата Y контрольной точки -
x1- координата X конечной точки -
y1- координата Y конечной точки
bezierCurveTo
public void bezierCurveTo(double xc1, double yc1, double xc2, double yc2, double x1, double y1)
save() и restore().- Parameters:
-
xc1- координата X первой контрольной точки Безье. -
yc1- координата Y первой контрольной точки Безье. -
xc2- координата X второй контрольной точки Безье. -
yc2- координата Y второй контрольной точки Безье. -
x1- координата X конечной точки. -
y1- координата Y конечной точки.
arcTo
public void arcTo(double x1, double y1, double x2, double y2, double radius)
save() и restore().
Если p0 — текущая точка в траектории, и p1 — точка, заданная (x1, y1) и p2 — точка, заданная (x2, y2), то добавленные сегменты дуги будут сегментами по окружности круга, касающегося и вписанного во внутреннюю сторону p0->p1->p2. Траектория будет содержать сегмент прямой линии (при необходимости) до точки касания между этим кругом и p0->p1, за которым последуют сегменты дуги окружности, чтобы достичь точки касания между кругом и p1->p2, и завершится текущей точкой в этой точке касания (не в p2). Обратите внимание, что радиус и круговые сегменты дуги будут измеряться или рассматриваться относительно текущего преобразования, но полученные сегменты, рассчитанные из этих не преобразованных точек, будут преобразованы при добавлении в траекторию. Поскольку все вычисления выполняются в непространстве преобразования, но существующие сегменты траектории уже преобразованы, возможность правильного выполнения вычислений может неявно зависеть от возможности обратного преобразования текущего конца текущей траектории в координаты непространства преобразования.
Если по какой-либо причине невозможно вычислить и вписать указанный круг, то вся операция просто добавит сегменты, чтобы направить линию к точке p1. Возможные причины, по которым вычисления могут не удаться:
- Текущая траектория пуста.
- Сегменты
p0->p1->p2коллинеарны. - Текущее преобразование необратимо, поэтому текущую конечную точку текущей траектории нельзя обработать для вычислений.
- Parameters:
-
x1- координата X первой точки дуги. -
y1- координата Y первой точки дуги. -
x2- координата X второй точки дуги. -
y2- координата Y второй точки дуги. -
radius- радиус дуги в диапазоне {0,0-положительная бесконечность}.
arc
public void arc(double centerX, double centerY, double radiusX, double radiusY, double startAngle, double length)
save() и restore().- Parameters:
-
centerX- центральная позиция x дуги. -
centerY- центральная позиция y дуги. -
radiusX- радиус x дуги. -
radiusY- радиус y дуги. -
startAngle- начальный угол дуги в диапазоне0-360.0 -
length- длина базовой линии дуги.
rect
public void rect(double x, double y, double w, double h)
save() и restore().- Parameters:
-
x- положение x левого верхнего угла прямоугольника. -
y- положение y левого верхнего угла прямоугольника. -
w- ширина прямоугольника. -
h- высота прямоугольника.
appendSVGPath
public void appendSVGPath(String svgpath)
null или некорректная строка SVG Path будут проигнорированы. Координаты преобразуются текущим преобразованием при добавлении в траекторию и не затрагиваются последующими изменениями преобразования. Текущая траектория — это атрибут траектории, используемый для любых методов траектории, как указано в таблице Атрибутов рендеринга, и не затрагивается операциями save() и restore().- Parameters:
-
svgpath- строка SVG Path.
closePath
public void closePath()
save() и restore().fill
public void fill()
Этот метод будет затронут любыми из атрибутов общих глобальных, заливки или траектории, как указано в таблице Атрибутов рендеринга. Обратите внимание, что сегменты траектории были преобразованы при их первоначальном добавлении в текущую траекторию, поэтому текущее преобразование не повлияет на эти сегменты траектории снова, но может повлиять на другие атрибуты, действующие во время операции fill().
stroke
public void stroke()
Этот метод будет затронут любыми из атрибутов общих глобальных, обводки или траектории, как указано в таблице Атрибутов рендеринга. Обратите внимание, что сегменты траектории были преобразованы при их первоначальном добавлении в текущую траекторию, поэтому текущее преобразование не повлияет на эти сегменты траектории снова, но может повлиять на другие атрибуты, действующие во время операции stroke().
clip
public void clip()
Этот метод сам будет затронут только атрибутами траектории, как указано в таблице Атрибутов рендеринга. Обратите внимание, что сегменты траектории были преобразованы при их первоначальном добавлении в текущую траекторию, поэтому текущее преобразование не повлияет на эти сегменты траектории снова, но может повлиять на другие атрибуты, действующие во время операции stroke().
isPointInPath
public boolean isPointInPath(double x, double y)
- Parameters:
-
x- координата X для проверки. -
y- координата Y для проверки. - Returns:
- true, если заданная точка находится внутри траектории, иначе false.
очиститьПрямоугольник
public void clearRect(double x, double y, double w, double h)
Этот метод будет затронут только текущим преобразованием, обрезкой и эффектом.
- Параметры:
-
x- X-позиция верхнего левого угла прямоугольника. -
y- Y-позиция верхнего левого угла прямоугольника. -
w- ширина прямоугольника. -
h- высота прямоугольника.
заполнитьПрямоугольник
public void fillRect(double x, double y, double w, double h)
Этот метод будет затронут любыми атрибутами общих настроек или заливки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- позиция X верхнего левого угла прямоугольника. -
y- позиция Y верхнего левого угла прямоугольника. -
w- ширина прямоугольника. -
h- высота прямоугольника.
нарисоватьКонтурПрямоугольника
public void strokeRect(double x, double y, double w, double h)
Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- позиция X верхнего левого угла прямоугольника. -
y- позиция Y верхнего левого угла прямоугольника. -
w- ширина прямоугольника. -
h- высота прямоугольника.
заполнитьОвал
public void fillOval(double x, double y, double w, double h)
Этот метод будет затронут любыми атрибутами общих настроек или заливки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X левого верхнего угла овала. -
y- координата Y левого верхнего угла овала. -
w- ширина овала по центру. -
h- высота овала по центру.
нарисоватьКонтурОвала
public void strokeOval(double x, double y, double w, double h)
Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X левого верхнего угла овала. -
y- координата Y левого верхнего угла овала. -
w- ширина овала по центру. -
h- высота овала по центру.
заполнитьДугу
public void fillArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)
null Тип дуги или не положительная ширина или высота приведет к игнорированию команды отрисовки. Этот метод будет затронут любыми атрибутами общих настроек или заливки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X дуги. -
y- координата Y дуги. -
w- ширина дуги. -
h- высота дуги. -
startAngle- начальный угол дуги в градусах. -
arcExtent- угловой охват дуги в градусах. -
closure- тип замкнутости (Круг, Аккорд, Открытый) или null.
нарисоватьКонтурДуги
public void strokeArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)
null Тип дуги или не положительная ширина или высота приведет к игнорированию команды отрисовки. Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X дуги. -
y- координата Y дуги. -
w- ширина дуги. -
h- высота дуги. -
startAngle- начальный угол дуги в градусах. -
arcExtent- угловой охват дуги в градусах. -
closure- тип замкнутости (Круг, Аккорд, Открытый) или null
заполнитьЗакругленныйПрямоугольник
public void fillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)
Этот метод будет затронут любыми атрибутами общих настроек или заливки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X левого верхнего угла овала. -
y- координата Y левого верхнего угла овала. -
w- ширина овала по центру. -
h- высота овала по центру. -
arcWidth- радиус скругления углов прямоугольника. -
arcHeight- высота скругления углов прямоугольника.
нарисоватьКонтурЗакругленногоПрямоугольника
public void strokeRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)
Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x- координата X левого верхнего угла овала. -
y- координата Y левого верхнего угла овала. -
w- ширина овала по центру. -
h- высота овала по центру. -
arcWidth- радиус скругления углов прямоугольника. -
arcHeight- высота скругления углов прямоугольника.
нарисоватьЛинию
public void strokeLine(double x1, double y1, double x2, double y2)
Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
x1- координата X начальной точки линии. -
y1- координата Y начальной точки линии. -
x2- координата X конечной точки линии. -
y2- координата Y конечной точки линии.
заполнитьМногоугольник
public void fillPolygon(double[] xPoints, double[] yPoints, int nPoints)
null значение для любого из массивов будет проигнорировано, и ничего не будет нарисовано. Этот метод будет затронут любыми атрибутами общих настроек, заливки или правила заливки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
xPoints- массив с координатами x точек многоугольника или null. -
yPoints- массив с координатами y точек многоугольника или null. -
nPoints- количество точек, составляющих многоугольник.
нарисоватьКонтурМногоугольника
public void strokePolygon(double[] xPoints, double[] yPoints, int nPoints)
null значение для любого из массивов будет проигнорировано, и ничего не будет нарисовано. Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
xPoints- массив с координатами x точек многоугольника или null. -
yPoints- массив с координатами y точек многоугольника или null. -
nPoints- количество точек, составляющих многоугольник.
нарисоватьКонтурЛоманой
public void strokePolyline(double[] xPoints, double[] yPoints, int nPoints)
null значение для любого из массивов будет проигнорировано, и ничего не будет нарисовано. Этот метод будет затронут любыми атрибутами общих настроек или обводки, как указано в таблице Атрибутов отрисовки.
- Параметры:
-
xPoints- массив с координатами x точек ломаной или null. -
yPoints- массив с координатами y точек ломаной или null. -
nPoints- количество точек, составляющих ломаную.
drawImage
public void drawImage(Image img, double x, double y)
null или изображение, которое ещё обрабатывается, будет проигнорировано. Этот метод будет затронут любыми из глобальных общих или изображения атрибутов, как указано в Таблице атрибутов рендеринга.
- Параметры:
-
img- изображение для отображения или null. -
x- координата X на целевом элементе для верхнего левого угла изображения. -
y- координата Y на целевом элементе для верхнего левого угла изображения.
drawImage
public void drawImage(Image img, double x, double y, double w, double h)
null или изображение, которое ещё обрабатывается, будет проигнорировано. Этот метод будет затронут любыми из глобальных общих или изображения атрибутов, как указано в Таблице атрибутов рендеринга.
- Параметры:
-
img- изображение для отображения или null. -
x- координата X на целевом элементе для верхнего левого угла изображения. -
y- координата Y на целевом элементе для верхнего левого угла изображения. -
w- ширина прямоугольника назначения. -
h- высота прямоугольника назначения.
drawImage
public void drawImage(Image img, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh)
null или изображение, которое ещё обрабатывается, будет проигнорировано. Этот метод будет затронут любыми из глобальных общих или изображения атрибутов, как указано в Таблице атрибутов рендеринга.
- Параметры:
-
img- изображение для отображения или null. -
sx- координата X прямоугольника источника. -
sy- координата Y прямоугольника источника. -
sw- ширина прямоугольника источника. -
sh- высота прямоугольника источника. -
dx- координата X прямоугольника назначения. -
dy- координата Y прямоугольника назначения. -
dw- ширина прямоугольника назначения. -
dh- высота прямоугольника назначения.
getPixelWriter
public PixelWriter getPixelWriter()
PixelWriter, который может использоваться для изменения пикселей холста Canvas, связанного с этим GraphicsContext. Все координаты в методах PixelWriter возвращаемого объекта будут в пространстве устройства, так как они напрямую ссылаются на пиксели, и никакие другие атрибуты рендеринга не будут применяться при изменении пикселей с помощью этого объекта.- Возвращает:
- объект
PixelWriterдля изменения пикселей этогоCanvas
setEffect
public void setEffect(Effect e)
- Параметры:
-
e- эффект для использования, или null для отключения эффектов
getEffect
public Effect getEffect(Effect e)
- Параметры:
-
e- объектEffect, который может быть использован для хранения копии текущего эффекта, если он совместимого типа - Возвращает:
- текущий эффект, используемый для всех вызовов рендеринга, или null, если текущего эффекта нет
applyEffect
public void applyEffect(Effect e)
null будет проигнорировано. Эффект будет применён без других атрибутов рендеринга и под преобразованием координат Identity. Поскольку эффект применяется ко всем границам холста, некоторые эффекты могут иметь запутанный результат, например, эффект Reflection, который будет применять отражение от нижней части холста, даже если только часть холста была отрисована и не будет видна, если не использовать отрицательный смещение, чтобы вернуть отражение в поле зрения.- Параметры:
-
e- эффект, который нужно применить ко всему целевому элементу или null.
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.