Класс GraphicsContext
- javafx.scene.canvas.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 | Метод определения внутренней области путей для операции заливки или обрезки путей. |
Различные методы рендеринга на GraphicsContext используют следующие наборы атрибутов рендеринга:
| Метод | Общие атрибуты отрисовки | Атрибуты заливки | Атрибуты обводки | Атрибуты текста | Атрибуты пути |
|---|---|---|---|---|---|
Отрисовка основных фигур | |||||
fillRect(), fillRoundRect(), fillOval(), fillArc() | Да | Да | Нет | Нет | Нет |
strokeLine(), strokeRect(), strokeRoundRect(), strokeOval(), strokeArc() | Да | Нет | Да | Нет | Нет |
clearRect() | Да [1] | Нет | Нет | Нет | Нет |
fillPolygon() | Да | Да | Нет | Нет | Да [2] |
strokePolygon(), strokePolyline() | Да | Нет | Да | Нет | Нет |
[1] Только преобразование, обрезка и эффект применяются к clearRect() | |||||
Отрисовка текста | |||||
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] Преобразование применяется только во время построения пути | |||||
Отрисовка изображений | |||||
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
-
Краткое описание методов
Все методыМетоды экземпляровКонкретные методы Модификатор и тип Метод и описание voidappendSVGPath(String svgpath)Добавляет строку SVG Path в текущую траекторию.voidapplyEffect(Effect e)Применяет заданный эффект ко всему пространству холста и сохраняет результат в том же холсте.voidarc(double centerX, double centerY, double radiusX, double radiusY, double startAngle, double length)Добавляет элементы траектории, чтобы сформировать дугу, использующую градусы системы Евклида.voidarcTo(double x1, double y1, double x2, double y2, double radius)Добавляет сегменты в текущую траекторию, чтобы сформировать дугу.voidbeginPath()Сбрасывает текущую траекторию на пустое состояние.voidbezierCurveTo(double xc1, double yc1, double xc2, double yc2, double x1, double y1)Добавляет сегменты в текущую траекторию, чтобы сформировать кубическую кривую Безье.voidclearRect(double x, double y, double w, double h)Очищает часть холста прозрачным цветом.voidclip()Пересекает текущую обрезку с текущей траекторией и применяет её к последующим операциям рендеринга как антиалиасно замаскированную операцию.voidclosePath()Закрывает траекторию.voiddrawImage(Image img, double x, double y)Рисует изображение в заданной позиции x, y, используя ширину и высоту заданного изображения.voiddrawImage(Image img, double x, double y, double w, double h)Рисует изображение в заданный прямоугольник назначения на холсте.voiddrawImage(Image img, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh)Рисует указанный прямоугольник источника заданного изображения в заданный прямоугольник назначения холста.voidfill()Заливает траекторию текущей краской заливки.voidfillArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)Заливает дугу текущей краской заливки.voidfillOval(double x, double y, double w, double h)Заливает овал текущей краской заливки.voidfillPolygon(double[] xPoints, double[] yPoints, int nPoints)Заливает многоугольник с заданными точками текущей установленной краской заливки.voidfillRect(double x, double y, double w, double h)Заливает прямоугольник текущей краской заливки.voidfillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)Заливает прямоугольник с закругленными углами текущей краской заливки.voidfillText(String text, double x, double y)Заливает заданную строку текста в позиции x, y текущей краской заливки.voidfillText(String text, double x, double y, double maxWidth)Заливает текст, включая максимальную ширину строки.CanvasgetCanvas()ПолучаетCanvas, в которыйGraphicsContextотдает команды рисования.EffectgetEffect(Effect e)Получает копию эффекта, который будет применён после следующего вызова рисования.PaintgetFill()Получает текущую краску заливки.FillRulegetFillRule()Получает атрибут правила заполнения для определения внутренней части траекторий в операциях заливки и обрезки.FontgetFont()Получает текущий шрифт.FontSmoothingTypegetFontSmoothingType()Получает текущий тип сглаживания шрифта.doublegetGlobalAlpha()Получает текущий глобальный альфа-канал.BlendModegetGlobalBlendMode()Получает глобальный режим смешивания.StrokeLineCapgetLineCap()Получает текущую форму окончания линии контура.double[]getLineDashes()Получает копию текущего массива пунктирной линии.doublegetLineDashOffset()Получает текущий смещение пунктирной линии.StrokeLineJoingetLineJoin()Получает текущую форму соединения линий контура.doublegetLineWidth()Получает текущую ширину линии.doublegetMiterLimit()Получает текущее значение предела среза.PixelWritergetPixelWriter()Возвращает объектPixelWriter, который можно использовать для изменения пикселейCanvas, связанного с этимGraphicsContext.PaintgetStroke()Получает текущую линию обводки.TextAlignmentgetTextAlign()Получает текущееTextAlignment.VPosgetTextBaseline()Получает текущую базу выравнивания текста.AffinegetTransform()Возвращает копию текущего преобразования.AffinegetTransform(Affine xform)Копирует текущее преобразование в предоставленный объект, создавая новый объектAffine, если он равен null, и возвращает объект, содержащий копию.booleanisPointInPath(double x, double y)Возвращает true, если заданная точка x, y находится внутри траектории.voidlineTo(double x1, double y1)Добавляет сегменты в текущую траекторию, чтобы сформировать линию до заданной координаты x, y.voidmoveTo(double x0, double y0)Выполняет команду перемещения для текущей траектории в заданную координату x, y.voidquadraticCurveTo(double xc, double yc, double x1, double y1)Добавляет сегменты в текущую траекторию, чтобы сформировать квадратическую кривую Безье.voidrect(double x, double y, double w, double h)Добавляет элементы траектории в текущую траекторию, чтобы сформировать прямоугольник.voidrestore()Извлекает состояние со стека, устанавливая следующие атрибуты в значения, которые они имели в момент добавления этого состояния на стек.voidrotate(double degrees)Поворачивает текущее преобразование на указанный угол в градусах.voidsave()Сохраняет следующие атрибуты на стеке.voidscale(double x, double y)Масштабирует текущее преобразование на x, y.voidsetEffect(Effect e)Устанавливает эффект, который будет применён после следующего вызова рисования, или null для отключения эффектов.voidsetFill(Paint p)Устанавливает атрибут текущей краски заливки.voidsetFillRule(FillRule fillRule)Устанавливает правило заполнения для определения внутренней части траекторий в операциях заливки или обрезки.voidsetFont(Font f)Устанавливает текущий шрифт.voidsetFontSmoothingType(FontSmoothingType fontsmoothing)Устанавливает текущий тип сглаживания шрифта.voidsetGlobalAlpha(double alpha)Устанавливает глобальный альфа-канал текущего состояния.voidsetGlobalBlendMode(BlendMode op)Устанавливает глобальный режим смешивания.voidsetLineCap(StrokeLineCap cap)Устанавливает текущую форму окончания линии контура.voidsetLineDashes(double... dashes)Устанавливает текущий шаблон пунктирной линии контура, нормализованной копией аргумента.voidsetLineDashOffset(double dashOffset)Устанавливает смещение пунктирной линии.voidsetLineJoin(StrokeLineJoin join)Устанавливает текущую форму соединения линий контура.voidsetLineWidth(double lw)Устанавливает текущую ширину линии.voidsetMiterLimit(double ml)Устанавливает текущее значение предела среза.voidsetStroke(Paint p)Устанавливает текущий атрибут краски обводки.voidsetTextAlign(TextAlignment align)Определяет выравнивание текста по горизонтали относительно начала координат текстаx.voidsetTextBaseline(VPos baseline)Устанавливает текущую базу выравнивания текста.voidsetTransform(Affine xform)Устанавливает текущее преобразование.voidsetTransform(double mxx, double myx, double mxy, double myy, double mxt, double myt)Устанавливает текущее преобразование.voidstroke()Обводит траекторию текущей краской обводки.voidstrokeArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)Обводит дугу текущей краской обводки.voidstrokeLine(double x1, double y1, double x2, double y2)Обводит линию текущей краской обводки.voidstrokeOval(double x, double y, double w, double h)Обводит овал текущей краской обводки.
voidstrokePolygon(double[] xPoints, double[] yPoints, int nPoints)Проводит линию по заданным точкам с использованием текущей кисти обводки.voidstrokePolyline(double[] xPoints, double[] yPoints, int nPoints)Проводит полилинию по заданным точкам с использованием текущего атрибута кисти обводки.voidstrokeRect(double x, double y, double w, double h)Проводит прямоугольник с использованием текущей кисти обводки.voidstrokeRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)Проводит скругленный прямоугольник с использованием текущей кисти обводки.voidstrokeText(String text, double x, double y)Рисует заданную строку текста в позиции x, y с текущей кистью обводки.voidstrokeText(String text, double x, double y, double maxWidth)Рисует текст с кистью обводки и максимальной шириной строки.voidtransform(Affine xform)Конкатенирует входные данные с текущим преобразованием.voidtransform(double mxx, double myx, double mxy, double myy, double mxt, double myt)Конкатенирует входные данные с текущим преобразованием.voidtranslate(double x, double y)Производит сдвиг текущего преобразования на x, y.
-
Подробное описание метода
-
getCanvas
public Canvas getCanvas()
ПолучаетCanvas, к которомуGraphicsContextвыдает команды рисования. ДляGraphicsContextвсегда существует только одинCanvas.Возвращает:
Canvas —
GraphicsContext, к которому этотGraphicsContextвыдает команды рисования.
-
save
public void save()
Сохраняет следующие атрибуты в стеке:- Глобальный альфа-канал
- Глобальная операция смешивания
- Преобразование
- Кисть заливки
- Кисть обводки
- Ширина линии
- Тип окончания линии
- Тип соединения линии
- Предел скругления
- Обрезка
- Шрифт
- Выравнивание текста
- Базовая линия текста
- Эффект
- Правило заливки
-
restore
public void restore()
Извлекает состояние из стека, устанавливая следующие атрибуты в значения, которые у них были в момент добавления состояния в стек. Если стек пуст, ничего не меняется.- Глобальный альфа-канал
- Глобальная операция смешивания
- Преобразование
- Кисть заливки
- Кисть обводки
- Ширина линии
- Тип окончания линии
- Тип соединения линии
- Предел скругления
- Обрезка
- Шрифт
- Выравнивание текста
- Базовая линия текста
- Эффект
- Правило заливки
-
translate
public void translate(double x, double y)Смещает текущее преобразование на x, y.Параметры:
x- значение для смещения по оси x.
-
scale
public void scale(double x, double y)Масштабирует текущее преобразование на x, y.Параметры:
x- значение масштабирования по оси x.
-
rotate
public void rotate(double degrees)
Поворачивает текущее преобразование на заданный угол в градусах.Параметры:
degrees- значение угла в градусах для поворота текущего преобразования.
-
transform
public void transform(double mxx, double myx, double mxy, double myy, double mxt, double myt)Конкатенирует входное значение с текущим преобразованием.Параметры:
mxx- элемент матрицы 3x4, отвечающий за масштабирование по оси x.
-
transform
public void transform(Affine xform)
Конкатенирует входное значение с текущим преобразованием. Поддерживаются только 2D-преобразования. Используются только элементы масштабирования, смещения и наклона преобразования. Значениеnullобрабатывается как тождественное.Параметры:
xform- Аффинное преобразование, которое нужно конкатенировать с текущим преобразованием, или null.
-
setTransform
public void setTransform(double mxx, double myx, double mxy, double myy, double mxt, double myt)Устанавливает текущее преобразование.Параметры:
mxx- элемент матрицы 3x4, отвечающий за масштабирование по оси x.
-
setTransform
public void setTransform(Affine xform)
Устанавливает текущее преобразование. Поддерживаются только 2D-преобразования. Используются только элементы масштабирования, смещения и наклона преобразования.Параметры:
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. Можно установить любое допустимое значение double, но только значения в диапазоне[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— устанавливаемый или null режим смешивания.
-
getGlobalBlendMode
public BlendMode getGlobalBlendMode()
Получает глобальный режим смешивания. Значение по умолчанию —SRC_OVER. Режим смешивания — это общий атрибут, используемый почти во всех методах отрисовки, как указано в таблице Атрибутов отрисовки.Возвращает:
Глобальный режим смешивания текущего состояния.
-
setFill
public void setFill(Paint p)
Устанавливает текущую кисть заливки. Значение по умолчанию —BLACK. Кисть заливки — это атрибут заливки, используемый в методах заливки, как указано в таблице Атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется без изменений.Параметры:
p— Кисть, которая будет использоваться в качестве кисти заливки, или null.
-
getFill
public Paint getFill()
Получает текущую кисть заливки. Значение по умолчанию —BLACK. Кисть заливки — это атрибут заливки, используемый в методах заливки, как указано в таблице Атрибутов отрисовки.Возвращает:
Кисть, которая будет использоваться в качестве кисти заливки.
-
setStroke
public void setStroke(Paint p)
Устанавливает текущую кисть обводки. Значение по умолчанию —BLACK. Кисть обводки — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется без изменений.Параметры:
p— Кисть, которая будет использоваться в качестве кисти обводки, или null.
-
getStroke
public Paint getStroke()
Получает текущую кисть обводки. Значение по умолчанию —BLACK. Кисть обводки — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки.Возвращает:
Кисть, которая будет использоваться в качестве кисти обводки.
-
setLineWidth
public void setLineWidth(double lw)
Устанавливает текущую ширину линии. Значение по умолчанию —1.0. Ширина линии — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки. Значение вне диапазона(0, +inf)(бесконечное или не положительное) будет проигнорировано, и текущее значение останется без изменений.Параметры:
lw— значение в диапазоне {0-положительная бесконечность}, любые другие значения игнорируются, и значение остается неизменным.
-
getLineWidth
public double getLineWidth()
Получает текущую ширину линии. Значение по умолчанию —1.0. Ширина линии — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки.Возвращает:
Значение от 0 до бесконечности.
-
setLineCap
public void setLineCap(StrokeLineCap cap)
Устанавливает текущий тип окончания линии обводки. Значение по умолчанию —SQUARE. Тип окончания линии — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется без изменений.Параметры:
cap—StrokeLineCapсо значением Butt, Round или Square, или null.
-
getLineCap
public StrokeLineCap getLineCap()
Получает текущий тип окончания линии обводки. Значение по умолчанию —SQUARE. Тип окончания линии — это атрибут обводки, используемый в методах обводки, как указано в таблице Атрибутов отрисовки.Возвращает:
StrokeLineCapсо значением Butt, Round или Square.
-
-
setLineJoin
public void setLineJoin(StrokeLineJoin join)
Устанавливает текущее соединение линий штриховки. Значение по умолчанию —StrokeLineJoin.MITER. Соединение линий является атрибутом штриховки, используемым для любых методов штриховки, как указано в таблице Атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется без изменений.Параметры:
join-StrokeLineJoinсо значением Miter, Bevel или Round или null.
-
getLineJoin
public StrokeLineJoin getLineJoin()
Получает текущее соединение линий штриховки. Значение по умолчанию —StrokeLineJoin.MITER. Соединение линий является атрибутом штриховки, используемым для любых методов штриховки, как указано в таблице Атрибутов отрисовки.Возвращает:
StrokeLineJoinсо значением Miter, Bevel или Round.
-
setMiterLimit
public void setMiterLimit(double ml)
Устанавливает текущий предел срезки. Значение по умолчанию —10.0. Предел срезки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки. Значение бесконечности или не положительное значение вне диапазона(0, +inf)будет проигнорировано, и текущее значение останется неизменным.Параметры:
ml- значение предела срезки между 0 и положительной бесконечностью, любое другое значение будет проигнорировано, и значение останется неизменным.
-
getMiterLimit
public double getMiterLimit()
Получает текущий предел срезки. Значение по умолчанию —10.0. Предел срезки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки.Возвращает:
значение предела срезки в диапазоне
0.0-positive infinity
-
setLineDashes
public void setLineDashes(double... dashes)
Устанавливает текущий шаблон штриховки линий на нормализованную копию аргумента. Значение по умолчанию —null. Массив штриховки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки. Если массивnullили пустой, или содержит все0элементы, штриховка будет отключена, и текущий массив штриховки будет установлен наnull. Если какой-либо из элементов массива является отрицательным, бесконечным или NaN значением вне диапазона[0, +inf), то весь массив будет проигнорирован, и текущий массив штриховки останется без изменений. Если массив имеет нечётную длину, он будет обрабатываться так, как будто он был бы составлен из двух копий массива, добавленных друг к другу.Параметры:
dashes- массив конечных неотрицательных длин штриховС:
JavaFX 8u40
-
getLineDashes
public double[] getLineDashes()
Возвращает копию текущего массива штриховки. Значение по умолчанию —null. Массив может быть нормализован тестами валидации в методеsetLineDashes(double...). Массив штриховки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки.Возвращает:
копию текущего массива штриховки.
С:
JavaFX 8u40
-
setLineDashOffset
public void setLineDashOffset(double dashOffset)
Устанавливает смещение штриховки. Значение по умолчанию —0.0. Смещение штриховки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки. Значение бесконечности или NaN, выходящее за пределы диапазона(-inf, +inf), будет проигнорировано, и текущее значение останется без изменений.Параметры:
dashOffset- смещение штриховки в диапазоне(-inf, +inf)С:
JavaFX 8u40
-
getLineDashOffset
public double getLineDashOffset()
Получает текущее смещение штриховки. Значение по умолчанию —0.0. Смещение штриховки — атрибут штриховки, используемый для любых методов штриховки, как указано в таблице Атрибутов отрисовки.Возвращает:
смещение штриховки в диапазоне
(-inf, +inf)С:
JavaFX 8u40
-
setFont
public void setFont(Font f)
Устанавливает текущий шрифт. Значение по умолчанию задано вFont.getDefault(). Шрифт является атрибутом текста, используемым для любых методов текста, как указано в таблице атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется неизменным.Параметры:
f- шрифт или null.
-
getFont
public Font getFont()
Получает текущий шрифт. Значение по умолчанию задано вFont.getDefault(). Шрифт является атрибутом текста, используемым для любых методов текста, как указано в таблице атрибутов отрисовки.Возвращает:
шрифт
-
setFontSmoothingType
public void setFontSmoothingType(FontSmoothingType fontsmoothing)
Устанавливает текущий тип сглаживания шрифта. Значение по умолчанию —GRAY. Тип сглаживания шрифта является атрибутом текста, используемым для любых методов текста, как указано в таблице атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется неизменным.Примечание, что значение
FontSmoothingTypeLCDподдерживается только над непрозрачным фоном.LCDтекст, как правило, будет отображаться какGRAYтекст поверх прозрачных или частично прозрачных пикселей, а в некоторых реализациях он вообще может не поддерживаться наCanvas, поскольку необходимая поддержка отсутствует для поверхностей, содержащих альфа-канал, как всеCanvasобъекты.Параметры:
fontsmoothing-FontSmoothingTypeили nullС:
JavaFX 8u40
-
getFontSmoothingType
public FontSmoothingType getFontSmoothingType()
Получает текущий тип сглаживания шрифта. Значение по умолчанию —GRAY. Тип сглаживания шрифта является атрибутом текста, используемым для любых методов текста, как указано в таблице атрибутов отрисовки.Возвращает:
С:
JavaFX 8u40
-
setTextAlign
public void setTextAlign(TextAlignment align)
Определяет горизонтальное выравнивание текста относительно начала координат текста. Значение по умолчанию —LEFT. Выравнивание текста является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов отрисовки.Пусть горизонтальные границы представляют логическую ширину одной строки текста. Где каждая строка текста имеет отдельные горизонтальные границы.
Тогда выравнивание текста задается как:
- Слева: левый край горизонтальных границ будет в позиции
x. - По центру: центр, расположенный посередине между левым и правым краем, горизонтальных границ будет в позиции
x. - Справа: правый край горизонтальных границ будет в позиции
x.
Примечание: Canvas не поддерживает перенос строк, поэтому выравнивание текста по ширине идентично выравниванию текста по левому краю.
Значение
nullбудет проигнорировано, и текущее значение останется неизменным.Параметры:
align-TextAlignmentсо значениями Left, Center, Right или null. - Слева: левый край горизонтальных границ будет в позиции
-
getTextAlign
public TextAlignment getTextAlign()
Получает текущееTextAlignment. Значение по умолчанию —LEFT. Выравнивание текста является атрибутом текста, используемым для любых методов текста, как указано в таблице Атрибутов отрисовки.Возвращает:
TextAlignmentсо значениями Left, Center, Right или Justify.
-
setTextBaseline
public void setTextBaseline(VPos baseline)
Устанавливает текущее основание текста. Значение по умолчанию —BASELINE. Основание текста — атрибут текста, используемый для любых методов текста, как указано в таблице Атрибутов отрисовки. Значениеnullбудет проигнорировано, и текущее значение останется неизменным.Параметры:
baseline-VPosсо значениями Top, Center, Baseline или Bottom или null.
-
getTextBaseline
public VPos getTextBaseline()
Получает текущее основание текста. Значение по умолчанию —BASELINE. Основание текста — атрибут текста, используемый для любых методов текста, как указано в таблице Атрибутов отрисовки.Возвращает:
VPosсо значениями Top, Center, Baseline или Bottom
-
fillText
public void fillText(String text, double x, double y)Заполняет заданную строку текста в позиции x, y текущим атрибутом заливки. Значениеnullтекста будет проигнорировано.Этот метод будет подвержен влиянию общих глобальных, заливки или текста атрибутов, как указано в таблице атрибутов отрисовки.
Параметры:
text- строка текста или null.
-
-
strokeText
public void strokeText(String text, double x, double y)Рисует заданную строку текста в позиции x, y с текущим атрибутом заливки штрихом. Значениеnullтекста будет проигнорировано.Этот метод будет зависеть от любого из глобальных общих, штриховых или текстовых атрибутов, как указано в таблице Атрибутов рендеринга.
Параметры:
text- строка текста или null.
-
fillText
public void fillText(String text, double x, double y, double maxWidth)Заливает текст и включает максимальную ширину строки. Если ширина текста выходит за пределы максимальной ширины, то она будет подогнана под нее. Значениеnullтекста будет проигнорировано.Этот метод будет зависеть от любого из глобальных общих, заливок или текстовых атрибутов, как указано в таблице Атрибутов рендеринга.
Параметры:
text- строка текста или null.
-
strokeText
public void strokeText(String text, double x, double y, double maxWidth)Рисует текст штриховой заливкой и включает максимальную ширину строки. Если ширина текста выходит за пределы максимальной ширины, то она будет подогнана под нее. Значениеnullтекста будет проигнорировано.Этот метод будет зависеть от любого из глобальных общих, штриховых или текстовых атрибутов, как указано в таблице Атрибутов рендеринга.
Параметры:
text- строка текста или null.
-
setFillRule
public void setFillRule(FillRule fillRule)
Устанавливает атрибут правила заливки для определения внутренней области путей в операциях заливки или обрезки. Значение по умолчанию -FillRule.NON_ZERO. Значениеnullбудет проигнорировано, и текущее значение останется неизменным. Правило заливки является атрибутом пути, используемым для любых методов заливки или обрезки пути, как указано в таблице атрибутов рендеринга.Параметры:
fillRule-FillRuleсо значением Even_odd или Non_zero или null.
-
getFillRule
public FillRule getFillRule()
Получает атрибут правила заливки для определения внутренней области путей в операциях заливки и обрезки. Значение по умолчанию -FillRule.NON_ZERO. Правило заливки является атрибутом пути, используемым для любых методов заливки или обрезки пути, как указано в таблице атрибутов рендеринга.Возвращает:
текущее правило заливки.
-
beginPath
public void beginPath()
Сбрасывает текущий путь в пустое состояние. Путь по умолчанию пустой. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().
-
moveTo
public void moveTo(double x0, double y0)Выполняет команду перемещения для текущего пути в заданные координаты x, y. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
x0- позиция X для команды перемещения.
-
lineTo
public void lineTo(double x1, double y1)Добавляет сегменты к текущему пути, чтобы создать линию до заданных координат x, y. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
x1- координата X конечной точки линии.
-
quadraticCurveTo
public void quadraticCurveTo(double xc, double yc, double x1, double y1)Добавляет сегменты к текущему пути, чтобы создать квадратичную кривую Безье. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
xc- координата X точки управления
-
bezierCurveTo
public void bezierCurveTo(double xc1, double yc1, double xc2, double yc2, double x1, double y1)Добавляет сегменты к текущему пути, чтобы создать кубическую кривую Безье. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
xc1- координата X первой точки управления Безье.
-
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коллинеарны. - Текущее преобразование необратимо, поэтому текущую конечную точку текущего пути невозможно преобразовать для вычислений.
Параметры:
x1- координата X первой точки дуги.
-
arc
public void arc(double centerX, double centerY, double radiusX, double radiusY, double startAngle, double length)Добавляет элементы пути в текущий путь, чтобы создать дугу, использующую градусы Евклида. Это евклидово направление охватывает область от востока к северу, затем к западу, затем к югу и обратно к востоку. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
centerX- центральная позиция x дуги.
-
rect
public void rect(double x, double y, double w, double h)Добавляет элементы пути в текущий путь, чтобы создать прямоугольник. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
x- позиция x левого верхнего угла прямоугольника.
-
appendSVGPath
public void appendSVGPath(String svgpath)
Добавляет строку SVG Path к текущему пути. Если текущего пути нет, строка должна начинаться с команды перемещения. Значениеnullили некорректный путь SVG будут проигнорированы. Координаты преобразуются текущим преобразованием при добавлении в путь и не затрагиваются последующими изменениями преобразования. Текущий путь является атрибутом пути, используемым для любых методов пути, как указано в таблице атрибутов рендеринга, и не затрагивается операциямиsave()иrestore().Параметры:
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)Возвращает true, если заданная точка x,y находится внутри пути.Параметры:
x- координата X для проверки.Возвращает:
true, если заданная точка находится внутри пути, false в противном случае.
-
clearRect
public void clearRect(double x, double y, double w, double h)Очищает часть холста прозрачным цветом.Этот метод будет затронут только текущим преобразованием, областью обрезки и эффектом.
Параметры:
x- положение X левого верхнего угла прямоугольника.
-
fillRect
public void fillRect(double x, double y, double w, double h)Заполняет прямоугольник текущей краской заливки.Этот метод будет затронут любыми глобальными общими или заливными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- позиция X левого верхнего угла прямоугольника.
-
strokeRect
public void strokeRect(double x, double y, double w, double h)Отрисовывает контур прямоугольника текущей краской контура.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- позиция X левого верхнего угла прямоугольника.
-
fillOval
public void fillOval(double x, double y, double w, double h)Заполняет эллипс текущей краской заливки.Этот метод будет затронут любыми глобальными общими или заливными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X левой верхней границы эллипса.
-
strokeOval
public void strokeOval(double x, double y, double w, double h)Отрисовывает контур эллипса текущей краской контура.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X левой верхней границы эллипса.
-
fillArc
public void fillArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)Заполняет дугу текущей краской заливки.nullArcType или неположительная ширина или высота приведут к игнорированию команды рендеринга.Этот метод будет затронут любыми глобальными общими или заливными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X дуги.
-
strokeArc
public void strokeArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure)Отрисовывает контур дуги текущей краской контура.nullArcType или неположительная ширина или высота приведут к игнорированию команды рендеринга.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X дуги.
-
fillRoundRect
public void fillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)Заполняет прямоугольник с закругленными углами текущей краской заливки.Этот метод будет затронут любыми глобальными общими или заливными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X левой верхней границы эллипса.
-
strokeRoundRect
public void strokeRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight)Отрисовывает контур прямоугольника с закругленными углами текущей краской контура.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x- координата X левой верхней границы эллипса.
-
strokeLine
public void strokeLine(double x1, double y1, double x2, double y2)Рисует линию текущей краской контура.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
x1- координата X начальной точки линии.
-
fillPolygon
public void fillPolygon(double[] xPoints, double[] yPoints, int nPoints)Заполняет многоугольник с заданными точками текущей краской заливки.nullзначение для любого из массивов будет проигнорировано, и ничего не будет нарисовано.Этот метод будет затронут любыми глобальными общими, заливными или правилами заливки атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
xPoints- массив, содержащий координаты x точек многоугольника, или null.
-
strokePolygon
public void strokePolygon(double[] xPoints, double[] yPoints, int nPoints)Отрисовывает контур многоугольника с заданными точками текущей краской контура.nullзначение для любого из массивов будет проигнорировано, и ничего не будет нарисовано.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
xPoints- массив, содержащий координаты x точек многоугольника, или null.
-
strokePolyline
public void strokePolyline(double[] xPoints, double[] yPoints, int nPoints)Отрисовывает контур ломаной линии с заданными точками текущим атрибутом краски контура.nullзначение для любого из массивов будет проигнорировано, и ничего не будет нарисовано.Этот метод будет затронут любыми глобальными общими или контурными атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
xPoints- массив, содержащий координаты x точек ломаной линии, или null.
-
drawImage
public void drawImage(Image img, double x, double y)Отрисовывает изображение в заданном положении x, y, используя ширину и высоту заданного изображения.nullзначение изображения или изображение, которое еще обрабатывается, будут проигнорированы.Этот метод будет затронут любыми глобальными общими атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
img- изображение для отрисовки или null.
-
drawImage
public void drawImage(Image img, double x, double y, double w, double h)Отрисовывает изображение в заданный прямоугольник на холсте. Изображение масштабируется, чтобы уместиться в прямоугольник назначения.nullзначение изображения или изображение, которое еще обрабатывается, будут проигнорированы.Этот метод будет затронут любыми глобальными общими атрибутами, как указано в таблице Атрибутов рендеринга.
Параметры:
img- изображение для отрисовки или null.
-
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.
-
-
getPixelWriter
public PixelWriter getPixelWriter()
Возвращает объектPixelWriter, который можно использовать для изменения пикселей холстаCanvas, связанного с этимGraphicsContext. Все координаты в методахPixelWriterвозвращаемого объекта будут в пространстве устройства, так как они ссылаются непосредственно на пиксели, и при изменении пикселей с помощью этого объекта не будут применяться другие атрибуты рендеринга.Возвращает:
объект
PixelWriterдля изменения пикселей этогоCanvas
-
setEffect
public void setEffect(Effect e)
Устанавливает эффект, который будет применяться после следующего вызова draw, или null для отключения эффектов. Текущий эффект является общим атрибутом, используемым для почти всех операций рендеринга, как указано в таблице атрибутов рендеринга Таблица атрибутов рендеринга.Параметры:
e- используемый эффект или null для отключения эффектов
-
getEffect
public Effect getEffect(Effect e)
Возвращает копию эффекта, который будет применён после следующего вызова draw. Значение null означает, что после последующих вызовов рендеринга эффект не будет применён. Текущий эффект является общим атрибутом, используемым для почти всех операций рендеринга, как указано в таблице атрибутов рендеринга Таблица атрибутов рендеринга.Параметры:
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.