public class FXGraphics2D extends Graphics2D
Graphics2D
implementation that writes to a JavaFX Canvas
.
This class is copied directly from the FXGraphics2D project, we keep a local
copy to avoid having a dependency to manage.Constructor and Description |
---|
FXGraphics2D(GraphicsContext gc)
Creates a new instance that will render to the specified JavaFX
GraphicsContext . |
Modifier and Type | Method and Description |
---|---|
void |
addRenderingHints(Map<?,?> hints)
Adds all the supplied rendering hints.
|
void |
clearRect(int x,
int y,
int width,
int height)
Clears the specified rectangle by filling it with the current
background color.
|
void |
clip(Shape s)
Clips to the intersection of the current clipping region and the
specified shape.
|
void |
clipRect(int x,
int y,
int width,
int height)
Clips to the intersection of the current clipping region and the
specified rectangle.
|
void |
copyArea(int x,
int y,
int width,
int height,
int dx,
int dy)
Not yet implemented.
|
Graphics |
create()
Creates a new graphics object that is a copy of this graphics object.
|
GeneralPath |
createPolygon(int[] xPoints,
int[] yPoints,
int nPoints,
boolean close)
Creates a polygon from the specified
x and
y coordinate arrays. |
void |
dispose()
This method does nothing.
|
void |
draw(Shape s)
Draws the specified shape with the current
paint and
stroke . |
void |
drawArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
Draws an arc contained within the rectangle
(x, y, width, height) , starting at startAngle
and continuing through arcAngle degrees using
the current paint and stroke . |
void |
drawGlyphVector(GlyphVector g,
float x,
float y)
Draws the specified glyph vector at the location
(x, y) . |
void |
drawImage(BufferedImage img,
BufferedImageOp op,
int x,
int y)
Draws the image resulting from applying the
BufferedImageOp
to the specified image at the location (x, y) . |
boolean |
drawImage(Image img,
AffineTransform xform,
ImageObserver obs)
Draws an image with the specified transform.
|
boolean |
drawImage(Image img,
int x,
int y,
Color bgcolor,
ImageObserver observer)
Draws an image at the location
(x, y) . |
boolean |
drawImage(Image img,
int x,
int y,
ImageObserver observer)
Draws an image at the location
(x, y) . |
boolean |
drawImage(Image img,
int x,
int y,
int w,
int h,
Color bgcolor,
ImageObserver observer)
Draws an image to the rectangle
(x, y, w, h) (scaling it if
required), first filling the background with the specified color. |
boolean |
drawImage(Image img,
int x,
int y,
int width,
int height,
ImageObserver observer)
Draws an image at the location
(x, y) . |
boolean |
drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
Color bgcolor,
ImageObserver observer)
Draws part of an image (defined by the source rectangle
(sx1, sy1, sx2, sy2) ) into the destination rectangle
(dx1, dy1, dx2, dy2) . |
boolean |
drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
ImageObserver observer)
Draws part of an image (defined by the source rectangle
(sx1, sy1, sx2, sy2) ) into the destination rectangle
(dx1, dy1, dx2, dy2) . |
void |
drawLine(int x1,
int y1,
int x2,
int y2)
Draws a line from
(x1, y1) to (x2, y2) using
the current paint and stroke . |
void |
drawOval(int x,
int y,
int width,
int height)
Draws an oval framed by the rectangle
(x, y, width, height)
using the current paint and stroke . |
void |
drawPolygon(int[] xPoints,
int[] yPoints,
int nPoints)
Draws the specified polygon using the current
paint and
stroke . |
void |
drawPolyline(int[] xPoints,
int[] yPoints,
int nPoints)
Draws the specified multi-segment line using the current
paint and stroke . |
void |
drawRenderableImage(RenderableImage img,
AffineTransform xform)
Draws the renderable image.
|
void |
drawRenderedImage(RenderedImage img,
AffineTransform xform) |
void |
drawRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
Draws a rectangle with rounded corners using the current
paint and stroke . |
void |
drawString(AttributedCharacterIterator iterator,
float x,
float y)
Draws a string of attributed characters at
(x, y) . |
void |
drawString(AttributedCharacterIterator iterator,
int x,
int y)
Draws a string of attributed characters at
(x, y) . |
void |
drawString(String str,
float x,
float y)
Draws a string at
(x, y) . |
void |
drawString(String str,
int x,
int y)
Draws a string at
(x, y) . |
void |
fill(Shape s)
Fills the specified shape with the current
paint . |
void |
fillArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
Fills an arc contained within the rectangle
(x, y, width, height) , starting at startAngle
and continuing through arcAngle degrees, using
the current paint . |
void |
fillOval(int x,
int y,
int width,
int height)
Fills an oval framed by the rectangle
(x, y, width, height) . |
void |
fillPolygon(int[] xPoints,
int[] yPoints,
int nPoints)
Fills the specified polygon using the current
paint . |
void |
fillRect(int x,
int y,
int width,
int height)
Fills the specified rectangle with the current
paint . |
void |
fillRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
Fills a rectangle with rounded corners using the current
paint . |
Color |
getBackground()
Returns the background color (the default value is
Color.BLACK ). |
Shape |
getClip()
Returns the user clipping region.
|
Rectangle |
getClipBounds()
Returns the bounds of the user clipping region.
|
Color |
getColor()
Returns the foreground color.
|
Composite |
getComposite()
Returns the current composite.
|
GraphicsConfiguration |
getDeviceConfiguration()
This method is not implemented yet.
|
Font |
getFont()
Returns the current font used for drawing text.
|
FontMetrics |
getFontMetrics(Font f)
Returns the font metrics for the specified font.
|
FontRenderContext |
getFontRenderContext()
Returns the font render context.
|
Paint |
getPaint()
Returns the paint used to draw or fill shapes (or text).
|
Object |
getRenderingHint(RenderingHints.Key hintKey)
Returns the current value for the specified hint.
|
RenderingHints |
getRenderingHints()
Returns a copy of the rendering hints.
|
Stroke |
getStroke()
Returns the current stroke (this attribute is used when drawing shapes).
|
AffineTransform |
getTransform()
Returns a copy of the current transform.
|
double |
getZeroStrokeWidth()
Returns the width to use for the stroke when the AWT stroke
specified has a zero width (the default value is
0.5 ). |
boolean |
hit(Rectangle rect,
Shape s,
boolean onStroke)
Returns
true if the rectangle (in device space) intersects
with the shape (the interior, if onStroke is false,
otherwise the stroked outline of the shape). |
boolean |
isClippingDisabled()
Returns the flag that controls whether or not clipping is actually
applied to the JavaFX canvas.
|
void |
rotate(double theta)
Applies a rotation (anti-clockwise) about
(0, 0) . |
void |
rotate(double theta,
double x,
double y)
Applies a rotation (anti-clockwise) about
(x, y) . |
void |
scale(double sx,
double sy)
Applies a scale transformation.
|
void |
setBackground(Color color)
Sets the background color.
|
void |
setClip(int x,
int y,
int width,
int height)
Sets the user clipping region to the specified rectangle.
|
void |
setClip(Shape shape)
Sets the user clipping region.
|
void |
setClippingDisabled(boolean disabled)
Sets the flag that controls whether or not clipping is disabled.
|
void |
setColor(Color c)
Sets the foreground color.
|
void |
setComposite(Composite comp)
Sets the composite (only
AlphaComposite is handled). |
void |
setFont(Font font)
Sets the font to be used for drawing text.
|
void |
setPaint(Paint paint)
Sets the paint used to draw or fill shapes (or text).
|
void |
setPaintMode()
Not implemented - the method does nothing.
|
void |
setRenderingHint(RenderingHints.Key hintKey,
Object hintValue)
Sets the value for a hint.
|
void |
setRenderingHints(Map<?,?> hints)
Sets the rendering hints to the specified collection.
|
void |
setStroke(Stroke s)
Sets the stroke that will be used to draw shapes.
|
void |
setTransform(AffineTransform t)
Sets the transform.
|
void |
setXORMode(Color c1)
Not implemented - the method does nothing.
|
void |
setZeroStrokeWidth(double width)
Sets the width to use for the stroke when the current AWT stroke
has a width of
0.0 . |
void |
shear(double shx,
double shy)
Applies a shear transformation.
|
void |
transform(AffineTransform t)
Applies this transform to the existing transform by concatenating it.
|
void |
translate(double tx,
double ty)
Applies the translation
(tx, ty) . |
void |
translate(int tx,
int ty)
Applies the translation
(tx, ty) . |
draw3DRect, fill3DRect
create, drawBytes, drawChars, drawPolygon, drawRect, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip, toString
public FXGraphics2D(GraphicsContext gc)
GraphicsContext
.gc
- the graphics context (null
not permitted).public double getZeroStrokeWidth()
0.5
).
In the Java specification for BasicStroke
it states "If width
is set to 0.0f, the stroke is rendered as the thinnest possible
line for the target device and the antialias hint setting." We don't
have a means to implement that accurately since we must specify a fixed
width to the JavaFX canvas - this attribute is the width that is
used.
public void setZeroStrokeWidth(double width)
0.0
.width
- the new width (must be 0 or greater).public boolean isClippingDisabled()
false
(the clipping is ENABLED) but since it does not always
work correctly you have the option to disable it. See
https://javafx-jira.kenai.com/browse/RT-36891 for details (requires
an account).setClippingDisabled(boolean)
public void setClippingDisabled(boolean disabled)
disabled
- the new flag value.isClippingDisabled()
public GraphicsConfiguration getDeviceConfiguration()
getDeviceConfiguration
in class Graphics2D
null
.public Graphics create()
public Paint getPaint()
Color.BLACK
.getPaint
in class Graphics2D
null
).setPaint(java.awt.Paint)
public void setPaint(Paint paint)
paint
is an instance of Color
, this method will
also update the current color attribute (see getColor()
). If
you pass null
to this method, it does nothing (in
accordance with the JDK specification).
Color
,
GradientPaint
, LinearGradientPaint
and
RadialGradientPaint
, other paint implementations are not
handled.setPaint
in class Graphics2D
paint
- the paint (null
is permitted but ignored).getPaint()
public Color getColor()
getPaint()
method.getColor
in class Graphics
null
).getPaint()
public void setColor(Color c)
setPaint(java.awt.Paint)
method.setColor
in class Graphics
c
- the color (null
permitted but ignored).setPaint(java.awt.Paint)
public Color getBackground()
Color.BLACK
).
This attribute is used by the clearRect(int, int, int, int)
method.getBackground
in class Graphics2D
null
).setBackground(java.awt.Color)
public void setBackground(Color color)
clearRect(int, int, int, int)
method. The reference
implementation allows null
for the background color so
we allow that too (but for that case, the clearRect(int, int, int, int)
method will do nothing).setBackground
in class Graphics2D
color
- the color (null
permitted).getBackground()
public Composite getComposite()
getComposite
in class Graphics2D
null
).setComposite(java.awt.Composite)
public void setComposite(Composite comp)
AlphaComposite
is handled).setComposite
in class Graphics2D
comp
- the composite (null
not permitted).getComposite()
public Stroke getStroke()
getStroke
in class Graphics2D
null
).setStroke(java.awt.Stroke)
public void setStroke(Stroke s)
setStroke
in class Graphics2D
s
- the stroke (null
not permitted).getStroke()
public Object getRenderingHint(RenderingHints.Key hintKey)
getRenderingHint
in class Graphics2D
hintKey
- the hint key (null
permitted, but the
result will be null
also in that case).null
).setRenderingHint(java.awt.RenderingHints.Key, java.lang.Object)
public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
setRenderingHint
in class Graphics2D
hintKey
- the hint key (null
not permitted).hintValue
- the hint value.getRenderingHint(java.awt.RenderingHints.Key)
public RenderingHints getRenderingHints()
Graphics2D
instance.getRenderingHints
in class Graphics2D
null
).setRenderingHints(java.util.Map)
public void setRenderingHints(Map<?,?> hints)
setRenderingHints
in class Graphics2D
hints
- the new set of hints (null
not permitted).getRenderingHints()
public void addRenderingHints(Map<?,?> hints)
addRenderingHints
in class Graphics2D
hints
- the hints (null
not permitted).public void draw(Shape s)
paint
and
stroke
. There is direct handling for Line2D
,
Rectangle2D
, Ellipse2D
, Arc2D
and
Path2D
. All other shapes are mapped to a path outline and then
drawn.draw
in class Graphics2D
s
- the shape (null
not permitted).fill(java.awt.Shape)
public void fill(Shape s)
paint
. There is
direct handling for RoundRectangle2D
,
Rectangle2D
, Ellipse2D
and Arc2D
.
All other shapes are mapped to a path outline and then filled.fill
in class Graphics2D
s
- the shape (null
not permitted).draw(java.awt.Shape)
public Font getFont()
getFont
in class Graphics
null
).setFont(java.awt.Font)
public void setFont(Font font)
public FontMetrics getFontMetrics(Font f)
getFontMetrics
in class Graphics
f
- the font.public FontRenderContext getFontRenderContext()
FontRenderContext
for an image that is maintained
internally (as for getFontMetrics(java.awt.Font)
).getFontRenderContext
in class Graphics2D
public void drawString(String str, int x, int y)
(x, y)
. The start of the text at the
baseline level will be aligned with the (x, y)
point.drawString
in class Graphics2D
str
- the string (null
not permitted).x
- the x-coordinate.y
- the y-coordinate.drawString(java.lang.String, float, float)
public void drawString(String str, float x, float y)
(x, y)
. The start of the text at the
baseline level will be aligned with the (x, y)
point.drawString
in class Graphics2D
str
- the string (null
not permitted).x
- the x-coordinate.y
- the y-coordinate.public void drawString(AttributedCharacterIterator iterator, int x, int y)
(x, y)
. The
call is delegated to
drawString(AttributedCharacterIterator, float, float)
.drawString
in class Graphics2D
iterator
- an iterator for the characters.x
- the x-coordinate.y
- the x-coordinate.public void drawString(AttributedCharacterIterator iterator, float x, float y)
(x, y)
.drawString
in class Graphics2D
iterator
- an iterator over the characters (null
not
permitted).x
- the x-coordinate.y
- the y-coordinate.public void drawGlyphVector(GlyphVector g, float x, float y)
(x, y)
.drawGlyphVector
in class Graphics2D
g
- the glyph vector (null
not permitted).x
- the x-coordinate.y
- the y-coordinate.public void translate(int tx, int ty)
(tx, ty)
. This call is delegated
to translate(double, double)
.translate
in class Graphics2D
tx
- the x-translation.ty
- the y-translation.translate(double, double)
public void translate(double tx, double ty)
(tx, ty)
.translate
in class Graphics2D
tx
- the x-translation.ty
- the y-translation.public void rotate(double theta)
(0, 0)
.rotate
in class Graphics2D
theta
- the rotation angle (in radians).public void rotate(double theta, double x, double y)
(x, y)
.rotate
in class Graphics2D
theta
- the rotation angle (in radians).x
- the x-coordinate.y
- the y-coordinate.public void scale(double sx, double sy)
scale
in class Graphics2D
sx
- the x-scaling factor.sy
- the y-scaling factor.public void shear(double shx, double shy)
transform
method:
transform(AffineTransform.getShearInstance(shx, shy));
shear
in class Graphics2D
shx
- the x-shear factor.shy
- the y-shear factor.public void transform(AffineTransform t)
transform
in class Graphics2D
t
- the transform (null
not permitted).public AffineTransform getTransform()
getTransform
in class Graphics2D
null
).setTransform(java.awt.geom.AffineTransform)
public void setTransform(AffineTransform t)
setTransform
in class Graphics2D
t
- the new transform (null
permitted, resets to the
identity transform).getTransform()
public boolean hit(Rectangle rect, Shape s, boolean onStroke)
true
if the rectangle (in device space) intersects
with the shape (the interior, if onStroke
is false,
otherwise the stroked outline of the shape).hit
in class Graphics2D
rect
- a rectangle (in device space).s
- the shape.onStroke
- test the stroked outline only?public void setPaintMode()
setPaintMode
in class Graphics
public void setXORMode(Color c1)
setXORMode
in class Graphics
public Rectangle getClipBounds()
getClipBounds
in class Graphics
null
).getClip()
public Shape getClip()
null
.getClip
in class Graphics
null
).setClip(java.awt.Shape)
public void setClip(Shape shape)
public void clip(Shape s)
null
argument, but there is an open bug report (since 2004)
that suggests this is wrong:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6206189
In this implementation, a null
argument is not permitted.
clip
in class Graphics2D
s
- the clip shape (null
not permitted).public void clipRect(int x, int y, int width, int height)
public void setClip(int x, int y, int width, int height)
public void drawLine(int x1, int y1, int x2, int y2)
(x1, y1)
to (x2, y2)
using
the current paint
and stroke
.public void fillRect(int x, int y, int width, int height)
paint
.public void clearRect(int x, int y, int width, int height)
null
, this
method will do nothing.clearRect
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.getBackground()
public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
paint
and stroke
.drawRoundRect
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.arcWidth
- the arc-width.arcHeight
- the arc-height.fillRoundRect(int, int, int, int, int, int)
public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
paint
.fillRoundRect
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.arcWidth
- the arc-width.arcHeight
- the arc-height.drawRoundRect(int, int, int, int, int, int)
public void drawOval(int x, int y, int width, int height)
(x, y, width, height)
using the current paint
and stroke
.drawOval
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.fillOval(int, int, int, int)
public void fillOval(int x, int y, int width, int height)
(x, y, width, height)
.fillOval
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.drawOval(int, int, int, int)
public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
(x, y, width, height)
, starting at startAngle
and continuing through arcAngle
degrees using
the current paint
and stroke
.drawArc
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.startAngle
- the start angle in degrees, 0 = 3 o'clock.arcAngle
- the angle (anticlockwise) in degrees.fillArc(int, int, int, int, int, int)
public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
(x, y, width, height)
, starting at startAngle
and continuing through arcAngle
degrees, using
the current paint
.fillArc
in class Graphics
x
- the x-coordinate.y
- the y-coordinate.width
- the width.height
- the height.startAngle
- the start angle in degrees, 0 = 3 o'clock.arcAngle
- the angle (anticlockwise) in degrees.drawArc(int, int, int, int, int, int)
public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
paint
and stroke
.drawPolyline
in class Graphics
xPoints
- the x-points.yPoints
- the y-points.nPoints
- the number of points to use for the polyline.public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
paint
and
stroke
.drawPolygon
in class Graphics
xPoints
- the x-points.yPoints
- the y-points.nPoints
- the number of points to use for the polygon.fillPolygon(int[], int[], int)
public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
paint
.fillPolygon
in class Graphics
xPoints
- the x-points.yPoints
- the y-points.nPoints
- the number of points to use for the polygon.drawPolygon(int[], int[], int)
public GeneralPath createPolygon(int[] xPoints, int[] yPoints, int nPoints, boolean close)
x
and
y
coordinate arrays.xPoints
- the x-points.yPoints
- the y-points.nPoints
- the number of points to use for the polyline.close
- closed?public boolean drawImage(Image img, int x, int y, ImageObserver observer)
(x, y)
. Note that the
observer
is ignored.public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
(x, y)
. Note that the
observer
is ignored.public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
(x, y)
. Note that the
observer
is ignored.public boolean drawImage(Image img, int x, int y, int w, int h, Color bgcolor, ImageObserver observer)
(x, y, w, h)
(scaling it if
required), first filling the background with the specified color. Note
that the observer
is ignored.public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
(sx1, sy1, sx2, sy2)
) into the destination rectangle
(dx1, dy1, dx2, dy2)
. Note that the observer
is ignored.drawImage
in class Graphics
img
- the image.dx1
- the x-coordinate for the top left of the destination.dy1
- the y-coordinate for the top left of the destination.dx2
- the x-coordinate for the bottom right of the destination.dy2
- the y-coordinate for the bottom right of the destination.sx1
- the x-coordinate for the top left of the source.sy1
- the y-coordinate for the top left of the source.sx2
- the x-coordinate for the bottom right of the source.sy2
- the y-coordinate for the bottom right of the source.true
if the image is drawn.public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
(sx1, sy1, sx2, sy2)
) into the destination rectangle
(dx1, dy1, dx2, dy2)
. The destination rectangle is first
cleared by filling it with the specified bgcolor
. Note that
the observer
is ignored.drawImage
in class Graphics
img
- the image.dx1
- the x-coordinate for the top left of the destination.dy1
- the y-coordinate for the top left of the destination.dx2
- the x-coordinate for the bottom right of the destination.dy2
- the y-coordinate for the bottom right of the destination.sx1
- the x-coordinate for the top left of the source.sy1
- the y-coordinate for the top left of the source.sx2
- the x-coordinate for the bottom right of the source.sy2
- the y-coordinate for the bottom right of the source.bgcolor
- the background color (null
permitted).observer
- ignored.true
if the image is drawn.public void drawRenderedImage(RenderedImage img, AffineTransform xform)
drawRenderedImage
in class Graphics2D
public void drawRenderableImage(RenderableImage img, AffineTransform xform)
drawRenderableImage
in class Graphics2D
img
- the renderable image.xform
- the transform.public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
observer
is ignored.drawImage
in class Graphics2D
img
- the image.xform
- the transform.obs
- the image observer (ignored).true
if the image is drawn.public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
BufferedImageOp
to the specified image at the location (x, y)
.drawImage
in class Graphics2D
img
- the image.op
- the operation.x
- the x-coordinate.y
- the y-coordinate.public void copyArea(int x, int y, int width, int height, int dx, int dy)
Jas4pp 1.5 © Java Analysis Studio for Particle Physics