public final class CanvasGraphics2D extends Graphics2D
Graphics2D implementation that writes out JavaScript code
that will draw to an HTML5 Canvas.
Implementation notes:
drawString() methods that work with an
AttributedCharacterIterator currently ignore the formatting
information.
For some demos of the use of this class, please look in the
org.jfree.graphics2d.demo package in the src
directory.
| Constructor and Description |
|---|
CanvasGraphics2D(String canvasID)
Creates a new instance.
|
| 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.
|
void |
dispose()
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)
Not yet supported (but no exception is thrown).
|
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)
Draws the rendered image.
|
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.
|
String |
getCanvasID()
Returns the canvas ID that was passed to the constructor.
|
Shape |
getClip()
Returns the user clipping region.
|
Rectangle |
getClipBounds()
Returns the clip bounds.
|
Color |
getColor()
Returns the foreground color.
|
Composite |
getComposite()
Returns the current composite.
|
GraphicsConfiguration |
getDeviceConfiguration()
Not yet implemented.
|
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.
|
int |
getGeometryDP()
Returns the number of decimal places used to write the coordinates
of geometrical shapes.
|
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.
|
String |
getScript()
Returns the script that has been generated by calls to this
Graphics2D implementation. |
Stroke |
getStroke()
Returns the current stroke (used when drawing shapes).
|
AffineTransform |
getTransform()
Returns a copy of the current transform.
|
int |
getTransformDP()
Returns the number of decimal places used to write the transformation
matrices in the Javascript output.
|
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). |
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 |
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 |
setGeometryDP(int dp)
Sets the number of decimal places used to write the coordinates of
geometrical shapes in the Javascript output.
|
void |
setPaint(Paint paint)
Sets the paint used to draw or fill shapes (or text).
|
void |
setPaintMode()
Not yet implemented.
|
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 |
setTransformDP(int dp)
Sets the number of decimal places used to write the transformation
matrices in the Javascript output.
|
void |
setXORMode(Color c1)
Not yet implemented.
|
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)
Translates the origin to
(tx, ty). |
draw3DRect, fill3DRectcreate, drawBytes, drawChars, drawPolygon, drawRect, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip, toStringpublic CanvasGraphics2D(String canvasID)
canvasID - the canvas ID.public String getCanvasID()
public int getTransformDP()
Note that there is a separate attribute to control the number of decimal
places for geometrical elements in the output (see
getGeometryDP()).
setTransformDP(int)public void setTransformDP(int dp)
String conversion of
double primitives (approximately 16 decimals places).
Note that there is a separate attribute to control the number of decimal
places for geometrical elements in the output (see
setGeometryDP(int)).
dp - the number of decimal places (normally 1 to 10).getTransformDP()public int getGeometryDP()
Note that there is a separate attribute to control the number of decimal
places for transform matrices in the output (see
getTransformDP()).
public void setGeometryDP(int dp)
Note that there is a separate attribute to control the number of decimal
places for transform matrices in the output (see
setTransformDP(int)).
dp - the number of decimal places (normally 1 to 10).public GraphicsConfiguration getDeviceConfiguration()
getDeviceConfiguration in class Graphics2Dpublic Graphics create()
public Paint getPaint()
Color.BLACK.getPaint in class Graphics2Dnull).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).setPaint in class Graphics2Dpaint - the paint (null is permitted but ignored).getPaint()public Color getColor()
getPaint() method.getColor in class Graphicsnull).getPaint()public void setColor(Color c)
setPaint(java.awt.Paint) method.setColor in class Graphicsc - the color (null permitted but ignored).setPaint(java.awt.Paint)public Color getBackground()
Color.BLACK.
This is used by the clearRect(int, int, int, int) method.getBackground in class Graphics2Dnull).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 method will do
nothing).setBackground in class Graphics2Dcolor - the color (null permitted).getBackground()public Composite getComposite()
getComposite in class Graphics2Dnull).setComposite(java.awt.Composite)public void setComposite(Composite comp)
AlphaComposite is handled).setComposite in class Graphics2Dcomp - the composite (null not permitted).getComposite()public Stroke getStroke()
getStroke in class Graphics2Dnull).setStroke(java.awt.Stroke)public void setStroke(Stroke s)
BasicStroke is supported.setStroke in class Graphics2Ds - the stroke (null not permitted).getStroke()public Object getRenderingHint(RenderingHints.Key hintKey)
getRenderingHint in class Graphics2DhintKey - the hint key (null permitted, but the
result will be null also).null).setRenderingHint(java.awt.RenderingHints.Key, java.lang.Object)public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
setRenderingHint in class Graphics2DhintKey - the hint key (null not permitted).hintValue - the hint value.getRenderingHint(java.awt.RenderingHints.Key)public RenderingHints getRenderingHints()
getRenderingHints in class Graphics2Dnull).setRenderingHints(java.util.Map)public void setRenderingHints(Map<?,?> hints)
setRenderingHints in class Graphics2Dhints - the new set of hints (null not permitted).getRenderingHints()public void addRenderingHints(Map<?,?> hints)
addRenderingHints in class Graphics2Dhints - the hints (null not permitted).public void draw(Shape s)
paint and
stroke. There is direct handling for Line2D,
Rectangle2D and Path2D. All other shapes are
mapped to a GeneralPath and then drawn (effectively as
Path2D objects).draw in class Graphics2Ds - the shape (null not permitted).fill(java.awt.Shape)public void fill(Shape s)
paint. There is
direct handling for Rectangle2D and Path2D.
All other shapes are mapped to a GeneralPath and then
filled.fill in class Graphics2Ds - the shape (null not permitted).draw(java.awt.Shape)public Font getFont()
getFont in class Graphicsnull).setFont(java.awt.Font)public void setFont(Font font)
public FontMetrics getFontMetrics(Font f)
getFontMetrics in class Graphicsf - the font.public FontRenderContext getFontRenderContext()
FontRenderContext for an image that is maintained
internally (as for getFontMetrics(java.awt.Font)).getFontRenderContext in class Graphics2Dpublic 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 Graphics2Dstr - 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 Graphics2Dstr - 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(java.text.AttributedCharacterIterator, float, float).drawString in class Graphics2Diterator - 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 Graphics2Diterator - 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)
drawGlyphVector in class Graphics2Dg - the glyph vector.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 Graphics2Dtx - the x-translation.ty - the y-translation.public void translate(double tx,
double ty)
translate in class Graphics2Dtx - the x-translation.ty - the y-translation.public void rotate(double theta)
(0, 0).rotate in class Graphics2Dtheta - the rotation angle (in radians).public void rotate(double theta,
double x,
double y)
(x, y).rotate in class Graphics2Dtheta - the rotation angle (in radians).x - the x-coordinate.y - the y-coordinate.public void scale(double sx,
double sy)
scale in class Graphics2Dsx - 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 Graphics2Dshx - the x-shear factor.shy - the y-shear factor.public void transform(AffineTransform t)
transform in class Graphics2Dt - the transform (null not permitted).public AffineTransform getTransform()
getTransform in class Graphics2Dnull).setTransform(java.awt.geom.AffineTransform)public void setTransform(AffineTransform t)
setTransform in class Graphics2Dt - the new transform (null permitted, resets to the
identity transform).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 Graphics2Drect - a rectangle (in device space).s - the shape.onStroke - test the stroked outline only?public void setPaintMode()
setPaintMode in class Graphicspublic void setXORMode(Color c1)
setXORMode in class Graphicsc1 - the color.public Rectangle getClipBounds()
getClipBounds in class Graphicsnull).public Shape getClip()
null.getClip in class Graphicsnull).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=6206189clip in class Graphics2Ds - 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 copyArea(int x,
int y,
int width,
int height,
int dx,
int dy)
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 Graphicsx - 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 Graphicsx - 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 Graphicsx - 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 Graphicsx - 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 Graphicsx - 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 Graphicsx - 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 paintfillArc in class Graphicsx - 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 GraphicsxPoints - 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 GraphicsxPoints - 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 GraphicsxPoints - the x-points.yPoints - the y-points.nPoints - the number of points to use for the polygon.drawPolygon(int[], int[], int)public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
observer is ignored.drawImage in class Graphics2Dimg - 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 Graphics2Dimg - the image.op - the operation.x - the x-coordinate.y - the y-coordinate.public void drawRenderedImage(RenderedImage img, AffineTransform xform)
drawRenderedImage in class Graphics2Dimg - the image.xform - the transform.public void drawRenderableImage(RenderableImage img, AffineTransform xform)
drawRenderableImage in class Graphics2Dimg - the renderable image.xform - the transform.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)
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 Graphicsimg - 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 Graphicsimg - 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 String getScript()
Graphics2D implementation.Copyright © 2014. All rights reserved.