public final class SVGGraphics2D extends Graphics2D
A Graphics2D implementation that creates SVG output. After
rendering the graphics via the SVGGraphics2D, you can retrieve
an SVG element (see getSVGElement()) or an SVG document (see
getSVGDocument()) containing your content.
Using the SVGGraphics2D class is straightforward. First,
create an instance specifying the height and width of the SVG element that
will be created. Then, use standard Java2D API calls to draw content
into the element. Finally, retrieve the SVG element that has been
accumulated. For example:
SVGGraphics2D g2 = new SVGGraphics2D(300, 200);
g2.setPaint(Color.RED);
g2.draw(new Rectangle(10, 10, 280, 180));
String svgElement = g2.getSVGElement();
For the content generation step, you can make use of third party libraries, such as JFreeChart and Orson Charts, that render output using standard Java2D API calls.
Rendering Hints
The SVGGraphics2D supports a couple of custom rendering hints -
for details, refer to the SVGHints class documentation. Also see
the examples in this blog post:
Orson Charts 3D / Enhanced SVG Export.
Some additional notes:
- by default, JFreeSVG uses a fast conversion of numerical values to
strings for the SVG output (the 'RyuDouble' implementation). If you
prefer a different approach (for example, controlling the number of
decimal places in the output to reduce the file size) you can set your
own functions for converting numerical values - see the
setGeomDoubleConverter(DoubleFunction)andsetTransformDoubleConverter(DoubleFunction)methods. - the
getFontMetrics(java.awt.Font)andgetFontRenderContext()methods return values that come from an internalBufferedImage, this is a short-cut and we don't know if there are any negative consequences (if you know of any, please let us know and we'll add the info here or find a way to fix it); - Images are supported, but for methods with an
ImageObserverparameter note that the observer is ignored completely. In any case, using images that are not fully loaded already would not be a good idea in the context of generating SVG data/files; - when an HTML page contains multiple SVG elements, the items within
the DEFS element for each SVG element must have IDs that are unique across
all SVG elements in the page. JFreeSVG auto-populates the
defsKeyPrefixattribute to help ensure that unique IDs are generated.
For some demos showing how to use this class, look at the JFree-Demos project at GitHub: https://github.com/jfree/jfree-demos.
-
Constructor Summary
Constructors Constructor Description SVGGraphics2D(double width, double height)Creates a new instance with the specified width and height.SVGGraphics2D(double width, double height, SVGUnits units)Creates a new instance with the specified width and height in the given units.SVGGraphics2D(double width, double height, SVGUnits units, StringBuilder sb)Creates a new instance with the specified width and height that will populate the suppliedStringBuilderinstance. -
Method Summary
Modifier and Type Method Description voidaddRenderingHints(Map<?,?> hints)Adds all the supplied rendering hints.voidclearRect(int x, int y, int width, int height)Clears the specified rectangle by filling it with the current background color.voidclip(Shape s)Clips to the intersection of the current clipping region and the specified shape.voidclipRect(int x, int y, int width, int height)Clips to the intersection of the current clipping region and the specified rectangle.voidcopyArea(int x, int y, int width, int height, int dx, int dy)This method does nothing.Graphicscreate()Creates a new graphics object that is a copy of this graphics object (except that it has not accumulated the drawing operations).voiddispose()This method does nothing, there are no resources to dispose.voiddraw(Shape s)Draws the specified shape with the currentpaintandstroke.voiddrawArc(int x, int y, int width, int height, int startAngle, int arcAngle)Draws an arc contained within the rectangle(x, y, width, height), starting atstartAngleand continuing througharcAngledegrees using the currentpaintandstroke.voiddrawGlyphVector(GlyphVector g, float x, float y)Draws the specified glyph vector at the location(x, y).voiddrawImage(BufferedImage img, BufferedImageOp op, int x, int y)Draws the image resulting from applying theBufferedImageOpto the specified image at the location(x, y).booleandrawImage(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).booleandrawImage(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).booleandrawImage(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.booleandrawImage(Image img, int x, int y, int w, int h, ImageObserver observer)Draws the image into the rectangle defined by(x, y, w, h).booleandrawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)Draws an image at the location(x, y).booleandrawImage(Image img, int x, int y, ImageObserver observer)Draws an image at the location(x, y).booleandrawImage(Image img, AffineTransform xform, ImageObserver obs)Draws an image with the specified transform.voiddrawLine(int x1, int y1, int x2, int y2)Draws a line from(x1, y1)to(x2, y2)using the currentpaintandstroke.voiddrawOval(int x, int y, int width, int height)Draws an oval framed by the rectangle(x, y, width, height)using the currentpaintandstroke.voiddrawPolygon(int[] xPoints, int[] yPoints, int nPoints)Draws the specified polygon using the currentpaintandstroke.voiddrawPolyline(int[] xPoints, int[] yPoints, int nPoints)Draws the specified multi-segment line using the currentpaintandstroke.voiddrawRenderableImage(RenderableImage img, AffineTransform xform)Draws the renderable image.voiddrawRenderedImage(RenderedImage img, AffineTransform xform)Draws the rendered image.voiddrawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)Draws a rectangle with rounded corners using the currentpaintandstroke.voiddrawString(String str, float x, float y)Draws a string at(x, y).voiddrawString(String str, int x, int y)Draws a string at(x, y).voiddrawString(AttributedCharacterIterator iterator, float x, float y)Draws a string of attributed characters at(x, y).voiddrawString(AttributedCharacterIterator iterator, int x, int y)Draws a string of attributed characters at(x, y).voidfill(Shape s)Fills the specified shape with the currentpaint.voidfillArc(int x, int y, int width, int height, int startAngle, int arcAngle)Fills an arc contained within the rectangle(x, y, width, height), starting atstartAngleand continuing througharcAngledegrees, using the currentpaint.voidfillOval(int x, int y, int width, int height)Fills an oval framed by the rectangle(x, y, width, height).voidfillPolygon(int[] xPoints, int[] yPoints, int nPoints)Fills the specified polygon using the currentpaint.voidfillRect(int x, int y, int width, int height)Fills the specified rectangle with the currentpaint.voidfillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)Fills a rectangle with rounded corners using the currentpaint.ColorgetBackground()Returns the background color.booleangetCheckStrokeControlHint()Returns the flag that controls whether or not this object will observe theKEY_STROKE_CONTROLrendering hint.ShapegetClip()Returns the user clipping region.RectanglegetClipBounds()Returns the bounds of the user clipping region.ColorgetColor()Returns the foreground color.CompositegetComposite()Returns the current composite.StringgetDefsKeyPrefix()Returns the prefix used for all keys in the DEFS element.GraphicsConfigurationgetDeviceConfiguration()Returns the device configuration associated with thisGraphics2D.Set<String>getElementIDs()Returns a new set containing the element IDs that have been used in output so far.StringgetFilePrefix()Returns the prefix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.StringgetFileSuffix()Returns the suffix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.FontgetFont()Returns the current font used for drawing text.Function<String,String>getFontFunction()Returns the function that generates SVG font references from a supplied Java font family name.FontMetricsgetFontMetrics(Font f)Returns the font metrics for the specified font.FontRenderContextgetFontRenderContext()Returns the font render context.SVGUnitsgetFontSizeUnits()Returns the font size units.DoubleFunction<String>getGeomDoubleConverter()Returns the double-to-string function that is used when writing coordinates for geometrical shapes in the SVG output.doublegetHeight()Returns the height for the SVG element, specified in the constructor.PaintgetPaint()Returns the paint used to draw or fill shapes (or text).ObjectgetRenderingHint(RenderingHints.Key hintKey)Returns the current value for the specified hint.RenderingHintsgetRenderingHints()Returns a copy of the rendering hints.StrokegetStroke()Returns the current stroke (used when drawing shapes).StringgetSVGDocument()Returns an SVG document (this contains the content returned by thegetSVGElement()method, prepended with the required document header).StringgetSVGElement()Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation.StringgetSVGElement(String id)Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation, giving it the specifiedid.StringgetSVGElement(String id, boolean includeDimensions, ViewBox viewBox, PreserveAspectRatio preserveAspectRatio, MeetOrSlice meetOrSlice)Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation, giving it the specifiedid.List<ImageElement>getSVGImages()Returns the list of image elements that have been referenced in the SVG output but not embedded.AffineTransformgetTransform()Returns a copy of the current transform.DoubleFunction<String>getTransformDoubleConverter()Returns the double-to-string function that is used when writing values for matrix transformations in the SVG output.SVGUnitsgetUnits()Returns the units for the width and height of the SVG element's viewport, as specified in the constructor.doublegetWidth()Returns the width for the SVG element, specified in the constructor.doublegetZeroStrokeWidth()Returns the width to use for the SVG stroke when the AWT stroke specified has a zero width (the default value is0.1).booleanhit(Rectangle rect, Shape s, boolean onStroke)Returnstrueif the rectangle (in device space) intersects with the shape (the interior, ifonStrokeisfalse, otherwise the stroked outline of the shape).voidrotate(double theta)Applies a rotation (anti-clockwise) about(0, 0).voidrotate(double theta, double x, double y)Applies a rotation (anti-clockwise) about(x, y).voidscale(double sx, double sy)Applies a scale transformation.voidsetBackground(Color color)Sets the background color.voidsetCheckStrokeControlHint(boolean check)Sets the flag that controls whether or not this object will observe theKEY_STROKE_CONTROLrendering hint.voidsetClip(int x, int y, int width, int height)Sets the user clipping region to the specified rectangle.voidsetClip(Shape shape)Sets the user clipping region.voidsetColor(Color c)Sets the foreground color.voidsetComposite(Composite comp)Sets the composite (onlyAlphaCompositeis handled).voidsetDefsKeyPrefix(String prefix)Sets the prefix that will be used for all keys in the DEFS element.voidsetFilePrefix(String prefix)Sets the prefix used to generate a filename for any image that is referenced from the SVG element.voidsetFileSuffix(String suffix)Sets the suffix used to generate a filename for any image that is referenced from the SVG element.voidsetFont(Font font)Sets the font to be used for drawing text.voidsetFontFunction(Function<String,String> fontFunction)Sets the font function that is used to generate SVG font references from Java font family names.voidsetFontSizeUnits(SVGUnits fontSizeUnits)Sets the font size units.voidsetGeomDoubleConverter(DoubleFunction<String> converter)Sets the double-to-string function that is used when writing coordinates for geometrical shapes in the SVG output.voidsetPaint(Paint paint)Sets the paint used to draw or fill shapes (or text).voidsetPaintMode()Does nothing in thisSVGGraphics2Dimplementation.voidsetRenderingHint(RenderingHints.Key hintKey, Object hintValue)Sets the value for a hint.voidsetRenderingHints(Map<?,?> hints)Sets the rendering hints to the specified collection.voidsetStroke(Stroke s)Sets the stroke that will be used to draw shapes.voidsetTransform(AffineTransform t)Sets the transform.voidsetTransformDoubleConverter(DoubleFunction<String> converter)Sets the double-to-string function that is used when writing coordinates for matrix transformations in the SVG output.voidsetXORMode(Color c)Does nothing in thisSVGGraphics2Dimplementation.voidsetZeroStrokeWidth(double width)Sets the width to use for the SVG stroke when the current AWT stroke has a width of 0.0.voidshear(double shx, double shy)Applies a shear transformation.voidtransform(AffineTransform t)Applies this transform to the existing transform by concatenating it.voidtranslate(double tx, double ty)Applies the translation(tx, ty).voidtranslate(int tx, int ty)Applies the translation(tx, ty).Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRectMethods inherited from class java.awt.Graphics
create, drawBytes, drawChars, drawPolygon, drawRect, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip, toString
-
Constructor Details
-
SVGGraphics2D
Creates a new instance with the specified width and height.- Parameters:
width- the width of the SVG element.height- the height of the SVG element.
-
SVGGraphics2D
Creates a new instance with the specified width and height in the given units.- Parameters:
width- the width of the SVG element.height- the height of the SVG element.units- the units for the width and height (nullpermitted).- Since:
- 3.2
-
SVGGraphics2D
Creates a new instance with the specified width and height that will populate the suppliedStringBuilderinstance.- Parameters:
width- the width of the SVG element.height- the height of the SVG element.units- the units for the width and height (nullpermitted).sb- the string builder (nullnot permitted).- Since:
- 3.2
-
-
Method Details
-
getWidth
Returns the width for the SVG element, specified in the constructor. This value will be written to the SVG element returned by thegetSVGElement()method.- Returns:
- The width for the SVG element.
-
getHeight
Returns the height for the SVG element, specified in the constructor. This value will be written to the SVG element returned by thegetSVGElement()method.- Returns:
- The height for the SVG element.
-
getUnits
Returns the units for the width and height of the SVG element's viewport, as specified in the constructor. The default value isnull).- Returns:
- The units (possibly
null). - Since:
- 3.2
-
getCheckStrokeControlHint
Returns the flag that controls whether or not this object will observe theKEY_STROKE_CONTROLrendering hint. The default value istrue.- Returns:
- A boolean.
- Since:
- 2.0
- See Also:
setCheckStrokeControlHint(boolean)
-
setCheckStrokeControlHint
Sets the flag that controls whether or not this object will observe theKEY_STROKE_CONTROLrendering hint. When enabled (the default), a hint to normalise strokes will write astroke-styleattribute with the valuecrispEdges.- Parameters:
check- the new flag value.- Since:
- 2.0
- See Also:
getCheckStrokeControlHint()
-
getDefsKeyPrefix
Returns the prefix used for all keys in the DEFS element. The default value is"_"+ String.valueOf(System.nanoTime()).- Returns:
- The prefix string (never
null). - Since:
- 1.9
-
setDefsKeyPrefix
Sets the prefix that will be used for all keys in the DEFS element. If required, this must be set immediately after construction (before any content generation methods have been called).- Parameters:
prefix- the prefix (nullnot permitted).- Since:
- 1.9
-
getGeomDoubleConverter
Returns the double-to-string function that is used when writing coordinates for geometrical shapes in the SVG output. The default function uses the Ryu algorithm for speed (see class description for more details).- Returns:
- The double-to-string function (never
null). - Since:
- 5.0
-
setGeomDoubleConverter
Sets the double-to-string function that is used when writing coordinates for geometrical shapes in the SVG output. The default converter optimises for speed when generating the SVG and should cover normal usage. However this method provides the ability to substitute an alternative function (for example, one that favours output size over speed of generation).- Parameters:
converter- the convertor function (nullnot permitted).- Since:
- 5.0
- See Also:
setTransformDoubleConverter(java.util.function.DoubleFunction)
-
getTransformDoubleConverter
Returns the double-to-string function that is used when writing values for matrix transformations in the SVG output.- Returns:
- The double-to-string function (never
null). - Since:
- 5.0
-
setTransformDoubleConverter
Sets the double-to-string function that is used when writing coordinates for matrix transformations in the SVG output. The default converter optimises for speed when generating the SVG and should cover normal usage. However this method provides the ability to substitute an alternative function (for example, one that favours output size over speed of generation).- Parameters:
converter- the convertor function (nullnot permitted).- Since:
- 5.0
- See Also:
setGeomDoubleConverter(java.util.function.DoubleFunction)
-
getFilePrefix
Returns the prefix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.- Returns:
- The file prefix (never
null). - Since:
- 1.5
-
setFilePrefix
Sets the prefix used to generate a filename for any image that is referenced from the SVG element.- Parameters:
prefix- the new prefix (nullnot permitted).- Since:
- 1.5
-
getFileSuffix
Returns the suffix used to generate a filename for an image that is referenced from, rather than embedded in, the SVG element.- Returns:
- The file suffix (never
null). - Since:
- 1.5
-
setFileSuffix
Sets the suffix used to generate a filename for any image that is referenced from the SVG element.- Parameters:
suffix- the new prefix (nullnot permitted).- Since:
- 1.5
-
getZeroStrokeWidth
Returns the width to use for the SVG stroke when the AWT stroke specified has a zero width (the default value is0.1). In the Java specification forBasicStrokeit 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.- Returns:
- The width.
- Since:
- 1.9
-
setZeroStrokeWidth
Sets the width to use for the SVG stroke when the current AWT stroke has a width of 0.0.- Parameters:
width- the new width (must be 0 or greater).- Since:
- 1.9
-
getDeviceConfiguration
Returns the device configuration associated with thisGraphics2D.- Specified by:
getDeviceConfigurationin classGraphics2D- Returns:
- The graphics configuration.
-
create
Creates a new graphics object that is a copy of this graphics object (except that it has not accumulated the drawing operations). Not sure yet when or why this would be useful when creating SVG output. Note that thefontFunctionobject (getFontFunction()) is shared between the existing instance and the new one. -
getPaint
Returns the paint used to draw or fill shapes (or text). The default value isColor.BLACK.- Specified by:
getPaintin classGraphics2D- Returns:
- The paint (never
null). - See Also:
setPaint(java.awt.Paint)
-
setPaint
Sets the paint used to draw or fill shapes (or text). Ifpaintis an instance ofColor, this method will also update the current color attribute (seegetColor()). If you passnullto this method, it does nothing (in accordance with the JDK specification).- Specified by:
setPaintin classGraphics2D- Parameters:
paint- the paint (nullis permitted but ignored).- See Also:
getPaint()
-
getColor
Returns the foreground color. This method exists for backwards compatibility in AWT, you should use thegetPaint()method.- Specified by:
getColorin classGraphics- Returns:
- The foreground color (never
null). - See Also:
getPaint()
-
setColor
Sets the foreground color. This method exists for backwards compatibility in AWT, you should use thesetPaint(java.awt.Paint)method.- Specified by:
setColorin classGraphics- Parameters:
c- the color (nullpermitted but ignored).- See Also:
setPaint(java.awt.Paint)
-
getBackground
Returns the background color. The default value isColor.BLACK. This is used by theclearRect(int, int, int, int)method.- Specified by:
getBackgroundin classGraphics2D- Returns:
- The background color (possibly
null). - See Also:
setBackground(java.awt.Color)
-
setBackground
Sets the background color. This is used by theclearRect(int, int, int, int)method. The reference implementation allowsnullfor the background color so we allow that too (but for that case, the clearRect method will do nothing).- Specified by:
setBackgroundin classGraphics2D- Parameters:
color- the color (nullpermitted).- See Also:
getBackground()
-
getComposite
Returns the current composite.- Specified by:
getCompositein classGraphics2D- Returns:
- The current composite (never
null). - See Also:
setComposite(java.awt.Composite)
-
setComposite
Sets the composite (onlyAlphaCompositeis handled).- Specified by:
setCompositein classGraphics2D- Parameters:
comp- the composite (nullnot permitted).- See Also:
getComposite()
-
getStroke
Returns the current stroke (used when drawing shapes).- Specified by:
getStrokein classGraphics2D- Returns:
- The current stroke (never
null). - See Also:
setStroke(java.awt.Stroke)
-
setStroke
Sets the stroke that will be used to draw shapes.- Specified by:
setStrokein classGraphics2D- Parameters:
s- the stroke (nullnot permitted).- See Also:
getStroke()
-
getRenderingHint
Returns the current value for the specified hint. See theSVGHintsclass for information about the hints that can be used withSVGGraphics2D.- Specified by:
getRenderingHintin classGraphics2D- Parameters:
hintKey- the hint key (nullpermitted, but the result will benullalso).- Returns:
- The current value for the specified hint
(possibly
null). - See Also:
setRenderingHint(java.awt.RenderingHints.Key, java.lang.Object)
-
setRenderingHint
Sets the value for a hint. See theSVGHintsclass for information about the hints that can be used with this implementation.- Specified by:
setRenderingHintin classGraphics2D- Parameters:
hintKey- the hint key (nullnot permitted).hintValue- the hint value.- See Also:
getRenderingHint(java.awt.RenderingHints.Key)
-
getRenderingHints
Returns a copy of the rendering hints. Modifying the returned copy will have no impact on the state of thisGraphics2Dinstance.- Specified by:
getRenderingHintsin classGraphics2D- Returns:
- The rendering hints (never
null). - See Also:
setRenderingHints(java.util.Map)
-
setRenderingHints
Sets the rendering hints to the specified collection.- Specified by:
setRenderingHintsin classGraphics2D- Parameters:
hints- the new set of hints (nullnot permitted).- See Also:
getRenderingHints()
-
addRenderingHints
Adds all the supplied rendering hints.- Specified by:
addRenderingHintsin classGraphics2D- Parameters:
hints- the hints (nullnot permitted).
-
draw
Draws the specified shape with the currentpaintandstroke. There is direct handling forLine2D,Rectangle2D,Ellipse2DandPath2D. All other shapes are mapped to aGeneralPathand then drawn (effectively asPath2Dobjects).- Specified by:
drawin classGraphics2D- Parameters:
s- the shape (nullnot permitted).- See Also:
fill(java.awt.Shape)
-
fill
Fills the specified shape with the currentpaint. There is direct handling forRectangle2D,Ellipse2DandPath2D. All other shapes are mapped to aGeneralPathand then filled.- Specified by:
fillin classGraphics2D- Parameters:
s- the shape (nullnot permitted).- See Also:
draw(java.awt.Shape)
-
getFont
Returns the current font used for drawing text.- Specified by:
getFontin classGraphics- Returns:
- The current font (never
null). - See Also:
setFont(java.awt.Font)
-
setFont
Sets the font to be used for drawing text. -
getFontFunction
Returns the function that generates SVG font references from a supplied Java font family name. The default function will convert Java logical font names to the equivalent SVG generic font name, pass-through all other font names unchanged, and surround the result in single quotes.- Returns:
- The font mapper (never
null). - Since:
- 5.0
- See Also:
setFontFunction(java.util.function.Function)
-
setFontFunction
Sets the font function that is used to generate SVG font references from Java font family names.- Parameters:
fontFunction- the font mapper (nullnot permitted).- Since:
- 5.0
-
getFontSizeUnits
Returns the font size units. The default value isSVGUnits.PX.- Returns:
- The font size units.
- Since:
- 3.4
-
setFontSizeUnits
Sets the font size units. In general, if this method is used it should be called immediately after theSVGGraphics2Dinstance is created and before any content is generated.- Parameters:
fontSizeUnits- the font size units (nullnot permitted).- Since:
- 3.4
-
getFontMetrics
Returns the font metrics for the specified font.- Specified by:
getFontMetricsin classGraphics- Parameters:
f- the font.- Returns:
- The font metrics.
-
getFontRenderContext
Returns the font render context.- Specified by:
getFontRenderContextin classGraphics2D- Returns:
- The font render context (never
null).
-
drawString
Draws a string at(x, y). The start of the text at the baseline level will be aligned with the(x, y)point.
Note that you can make use of theSVGHints.KEY_TEXT_RENDERINGhint when drawing strings (this is completely optional though).- Specified by:
drawStringin classGraphics2D- Parameters:
str- the string (nullnot permitted).x- the x-coordinate.y- the y-coordinate.- See Also:
drawString(java.lang.String, float, float)
-
drawString
Draws a string at(x, y). The start of the text at the baseline level will be aligned with the(x, y)point.
Note that you can make use of theSVGHints.KEY_TEXT_RENDERINGhint when drawing strings (this is completely optional though).- Specified by:
drawStringin classGraphics2D- Parameters:
str- the string (nullnot permitted).x- the x-coordinate.y- the y-coordinate.
-
drawString
Draws a string of attributed characters at(x, y). The call is delegated todrawString(AttributedCharacterIterator, float, float).- Specified by:
drawStringin classGraphics2D- Parameters:
iterator- an iterator for the characters.x- the x-coordinate.y- the x-coordinate.
-
drawString
Draws a string of attributed characters at(x, y).- Specified by:
drawStringin classGraphics2D- Parameters:
iterator- an iterator over the characters (nullnot permitted).x- the x-coordinate.y- the y-coordinate.
-
drawGlyphVector
Draws the specified glyph vector at the location(x, y).- Specified by:
drawGlyphVectorin classGraphics2D- Parameters:
g- the glyph vector (nullnot permitted).x- the x-coordinate.y- the y-coordinate.
-
translate
Applies the translation(tx, ty). This call is delegated totranslate(double, double).- Specified by:
translatein classGraphics2D- Parameters:
tx- the x-translation.ty- the y-translation.- See Also:
translate(double, double)
-
translate
Applies the translation(tx, ty).- Specified by:
translatein classGraphics2D- Parameters:
tx- the x-translation.ty- the y-translation.
-
rotate
Applies a rotation (anti-clockwise) about(0, 0).- Specified by:
rotatein classGraphics2D- Parameters:
theta- the rotation angle (in radians).
-
rotate
Applies a rotation (anti-clockwise) about(x, y).- Specified by:
rotatein classGraphics2D- Parameters:
theta- the rotation angle (in radians).x- the x-coordinate.y- the y-coordinate.
-
scale
Applies a scale transformation.- Specified by:
scalein classGraphics2D- Parameters:
sx- the x-scaling factor.sy- the y-scaling factor.
-
shear
Applies a shear transformation. This is equivalent to the following call to thetransformmethod:
-
transform(AffineTransform.getShearInstance(shx, shy));
- Specified by:
shearin classGraphics2D- Parameters:
shx- the x-shear factor.shy- the y-shear factor.
-
-
transform
Applies this transform to the existing transform by concatenating it.- Specified by:
transformin classGraphics2D- Parameters:
t- the transform (nullnot permitted).
-
getTransform
Returns a copy of the current transform.- Specified by:
getTransformin classGraphics2D- Returns:
- A copy of the current transform (never
null). - See Also:
setTransform(java.awt.geom.AffineTransform)
-
setTransform
Sets the transform.- Specified by:
setTransformin classGraphics2D- Parameters:
t- the new transform (nullpermitted, resets to the identity transform).- See Also:
getTransform()
-
hit
Returnstrueif the rectangle (in device space) intersects with the shape (the interior, ifonStrokeisfalse, otherwise the stroked outline of the shape).- Specified by:
hitin classGraphics2D- Parameters:
rect- a rectangle (in device space).s- the shape.onStroke- test the stroked outline only?- Returns:
- A boolean.
-
setPaintMode
Does nothing in thisSVGGraphics2Dimplementation.- Specified by:
setPaintModein classGraphics
-
setXORMode
Does nothing in thisSVGGraphics2Dimplementation.- Specified by:
setXORModein classGraphics- Parameters:
c- ignored
-
getClipBounds
Returns the bounds of the user clipping region.- Specified by:
getClipBoundsin classGraphics- Returns:
- The clip bounds (possibly
null). - See Also:
getClip()
-
getClip
Returns the user clipping region. The initial default value isnull.- Specified by:
getClipin classGraphics- Returns:
- The user clipping region (possibly
null). - See Also:
setClip(java.awt.Shape)
-
setClip
Sets the user clipping region. -
clip
Clips to the intersection of the current clipping region and the specified shape. According to the Oracle API specification, this method will accept anullargument, however there is a bug report (opened in 2004 and fixed in 2021) that describes the passing ofnullas "not recommended":- Specified by:
clipin classGraphics2D- Parameters:
s- the clip shape (nullnot recommended).
-
clipRect
Clips to the intersection of the current clipping region and the specified rectangle. -
setClip
Sets the user clipping region to the specified rectangle. -
drawLine
Draws a line from(x1, y1)to(x2, y2)using the currentpaintandstroke. -
fillRect
Fills the specified rectangle with the currentpaint. -
clearRect
Clears the specified rectangle by filling it with the current background color. If the background color isnull, this method will do nothing.- Specified by:
clearRectin classGraphics- Parameters:
x- the x-coordinate.y- the y-coordinate.width- the width.height- the height.- See Also:
getBackground()
-
drawRoundRect
Draws a rectangle with rounded corners using the currentpaintandstroke.- Specified by:
drawRoundRectin classGraphics- Parameters:
x- the x-coordinate.y- the y-coordinate.width- the width.height- the height.arcWidth- the arc-width.arcHeight- the arc-height.- See Also:
fillRoundRect(int, int, int, int, int, int)
-
fillRoundRect
Fills a rectangle with rounded corners using the currentpaint.- Specified by:
fillRoundRectin classGraphics- Parameters:
x- the x-coordinate.y- the y-coordinate.width- the width.height- the height.arcWidth- the arc-width.arcHeight- the arc-height.- See Also:
drawRoundRect(int, int, int, int, int, int)
-
drawOval
Draws an oval framed by the rectangle(x, y, width, height)using the currentpaintandstroke.- Specified by:
drawOvalin classGraphics- Parameters:
x- the x-coordinate.y- the y-coordinate.width- the width.height- the height.- See Also:
fillOval(int, int, int, int)
-
fillOval
Fills an oval framed by the rectangle(x, y, width, height).- Specified by:
fillOvalin classGraphics- Parameters:
x- the x-coordinate.y- the y-coordinate.width- the width.height- the height.- See Also:
drawOval(int, int, int, int)
-
drawArc
Draws an arc contained within the rectangle(x, y, width, height), starting atstartAngleand continuing througharcAngledegrees using the currentpaintandstroke.- Specified by:
drawArcin classGraphics- Parameters:
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.- See Also:
fillArc(int, int, int, int, int, int)
-
fillArc
Fills an arc contained within the rectangle(x, y, width, height), starting atstartAngleand continuing througharcAngledegrees, using the currentpaint.- Specified by:
fillArcin classGraphics- Parameters:
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.- See Also:
drawArc(int, int, int, int, int, int)
-
drawPolyline
Draws the specified multi-segment line using the currentpaintandstroke.- Specified by:
drawPolylinein classGraphics- Parameters:
xPoints- the x-points.yPoints- the y-points.nPoints- the number of points to use for the polyline.
-
drawPolygon
Draws the specified polygon using the currentpaintandstroke.- Specified by:
drawPolygonin classGraphics- Parameters:
xPoints- the x-points.yPoints- the y-points.nPoints- the number of points to use for the polygon.- See Also:
fillPolygon(int[], int[], int)
-
fillPolygon
Fills the specified polygon using the currentpaint.- Specified by:
fillPolygonin classGraphics- Parameters:
xPoints- the x-points.yPoints- the y-points.nPoints- the number of points to use for the polygon.- See Also:
drawPolygon(int[], int[], int)
-
drawImage
Draws an image at the location(x, y). Note that theobserveris ignored. -
drawImage
Draws the image into the rectangle defined by(x, y, w, h). Note that theobserveris ignored (it is not useful in this context). -
drawImage
Draws an image at the location(x, y). Note that theobserveris ignored. -
drawImage
public 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. Note that theobserveris ignored. -
drawImage
public 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). Note that theobserveris ignored.- Specified by:
drawImagein classGraphics- Parameters:
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.- Returns:
trueif the image is drawn.
-
drawImage
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)Draws part of an image (defined by the source rectangle(sx1, sy1, sx2, sy2)) into the destination rectangle(dx1, dy1, dx2, dy2). The destination rectangle is first cleared by filling it with the specifiedbgcolor. Note that theobserveris ignored.- Specified by:
drawImagein classGraphics- Parameters:
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 (nullpermitted).observer- ignored.- Returns:
trueif the image is drawn.
-
drawRenderedImage
Draws the rendered image. Ifimgisnullthis method does nothing.- Specified by:
drawRenderedImagein classGraphics2D- Parameters:
img- the image (nullpermitted).xform- the transform.
-
drawRenderableImage
Draws the renderable image.- Specified by:
drawRenderableImagein classGraphics2D- Parameters:
img- the renderable image.xform- the transform.
-
drawImage
Draws an image with the specified transform. Note that theobserveris ignored.- Specified by:
drawImagein classGraphics2D- Parameters:
img- the image.xform- the transform (nullpermitted).obs- the image observer (ignored).- Returns:
trueif the image is drawn.
-
drawImage
Draws the image resulting from applying theBufferedImageOpto the specified image at the location(x, y).- Specified by:
drawImagein classGraphics2D- Parameters:
img- the image.op- the operation (nullpermitted).x- the x-coordinate.y- the y-coordinate.
-
copyArea
This method does nothing. The operation assumes that the output is in bitmap form, which is not the case for SVG, so we silently ignore this method call. -
dispose
This method does nothing, there are no resources to dispose. -
getSVGElement
Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation.- Returns:
- The SVG element.
-
getSVGElement
Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation, giving it the specifiedid. Ifidisnull, the element will have noidattribute.- Parameters:
id- the element id (nullpermitted).- Returns:
- A string containing the SVG element.
- Since:
- 1.8
-
getSVGElement
public String getSVGElement(String id, boolean includeDimensions, ViewBox viewBox, PreserveAspectRatio preserveAspectRatio, MeetOrSlice meetOrSlice)Returns the SVG element that has been generated by calls to thisGraphics2Dimplementation, giving it the specifiedid. Ifidisnull, the element will have noidattribute. This method also allows for aviewBoxto be defined, along with the settings that handle scaling.- Parameters:
id- the element id (nullpermitted).includeDimensions- include the width and height attributes?viewBox- the view box specification (ifnullthen noviewBoxattribute will be defined).preserveAspectRatio- the value of thepreserveAspectRatioattribute (ifnullthen not attribute will be defined).meetOrSlice- the value of the meetOrSlice attribute.- Returns:
- A string containing the SVG element.
- Since:
- 3.2
-
getSVGDocument
Returns an SVG document (this contains the content returned by thegetSVGElement()method, prepended with the required document header).- Returns:
- An SVG document.
-
getSVGImages
Returns the list of image elements that have been referenced in the SVG output but not embedded. If the image files don't already exist, you can use this list as the basis for creating the image files.- Returns:
- The list of image elements.
- See Also:
SVGHints.KEY_IMAGE_HANDLING
-
getElementIDs
Returns a new set containing the element IDs that have been used in output so far.- Returns:
- The element IDs.
- Since:
- 1.5
-