org.apache.batik.ext.awt.g2d
public class GraphicContext extends Object implements Cloneable
Field Summary | |
---|---|
protected Color | background
Current background color. |
protected Shape | clip
Current clip |
protected Composite | composite
Current Composite |
protected AffineTransform | defaultTransform
Default Transform to be used for creating FontRenderContext. |
protected Font | font
Current Font |
protected Color | foreground
Current foreground color |
protected RenderingHints | hints
Current set of RenderingHints |
protected Paint | paint
Current Paint |
protected Stroke | stroke
Current Stroke |
protected AffineTransform | transform
Current AffineTransform. |
protected List | transformStack
Transform stack |
protected boolean | transformStackValid
Defines whether the transform stack is valide or not.
|
Constructor Summary | |
---|---|
GraphicContext()
Default constructor | |
GraphicContext(AffineTransform defaultDeviceTransform) |
Method Summary | |
---|---|
void | addRenderingHints(Map hints)
Sets the values of an arbitrary number of preferences for the
rendering algorithms.
|
void | clip(Shape s)
Intersects the current Clip with the interior of the
specified Shape and sets the Clip to the
resulting intersection. |
void | clipRect(int x, int y, int width, int height)
Intersects the current clip with the specified rectangle.
|
Object | clone() |
Color | getBackground()
Returns the background color used for clearing a region. |
Shape | getClip()
Gets the current clipping area.
|
Rectangle | getClipBounds()
Returns the bounding rectangle of the current clipping area.
|
Color | getColor()
Gets this graphics context's current color. |
Composite | getComposite()
Returns the current Composite in the
Graphics2D context. |
Font | getFont()
Gets the current font. |
FontRenderContext | getFontRenderContext()
Get the rendering context of the Font within this
Graphics2D context.
|
Paint | getPaint()
Returns the current Paint of the
Graphics2D context. |
Object | getRenderingHint(Key hintKey)
Returns the value of a single preference for the rendering algorithms.
|
RenderingHints | getRenderingHints()
Gets the preferences for the rendering algorithms. |
Stroke | getStroke()
Returns the current Stroke in the
Graphics2D context. |
AffineTransform | getTransform()
Returns a copy of the current Transform in the
Graphics2D context. |
TransformStackElement[] | getTransformStack() |
protected void | invalidateTransformStack()
Marks the GraphicContext's isNewTransformStack to true
as a memento that the current transform stack was reset
since it was last read. |
boolean | isTransformStackValid()
Checks the status of the transform stack |
void | rotate(double theta)
Concatenates the current Graphics2D
Transform with a rotation transform.
|
void | rotate(double theta, double x, double y)
Concatenates the current Graphics2D
Transform with a translated rotation
transform. |
void | scale(double sx, double sy)
Concatenates the current Graphics2D
Transform with a scaling transformation
Subsequent rendering is resized according to the specified scaling
factors relative to the previous scaling.
|
void | setBackground(Color color)
Sets the background color for the Graphics2D context.
|
void | setClip(int x, int y, int width, int height)
Sets the current clip to the rectangle specified by the given
coordinates. |
void | setClip(Shape clip)
Sets the current clipping area to an arbitrary clip shape.
|
void | setColor(Color c)
Sets this graphics context's current color to the specified
color. |
void | setComposite(Composite comp)
Sets the Composite for the Graphics2D context.
|
void | setFont(Font font)
Sets this graphics context's font to the specified font.
|
void | setPaint(Paint paint)
Sets the Paint attribute for the
Graphics2D context. |
void | setRenderingHint(Key hintKey, Object hintValue)
Sets the value of a single preference for the rendering algorithms.
|
void | setRenderingHints(Map hints)
Replaces the values of all preferences for the rendering
algorithms with the specified hints .
|
void | setStroke(Stroke s)
Sets the Stroke for the Graphics2D context. |
void | setTransform(AffineTransform Tx)
Sets the Transform in the Graphics2D
context. |
void | shear(double shx, double shy)
Concatenates the current Graphics2D
Transform with a shearing transform.
|
void | transform(AffineTransform Tx)
Composes an AffineTransform object with the
Transform in this Graphics2D according
to the rule last-specified-first-applied. |
void | translate(int x, int y)
Translates the origin of the graphics context to the point
(x, y) in the current coordinate system.
|
void | translate(double tx, double ty)
Concatenates the current
Graphics2D Transform
with a translation transform.
|
void | validateTransformStack()
Marks the GraphicContext's isNewTransformStack to false
as a memento that the current transform stack was read and
has not been reset. |
See Also: invalidateTransformStack GraphicContext GraphicContext
Parameters: defaultDeviceTransform Default affine transform applied to map the user space to the user space.
Map
object are modified.
All other preferences not present in the specified
object are left unmodified.
Hint categories include controls for rendering quality and
overall time/quality trade-off in the rendering process.
Refer to the RenderingHints
class for definitions of
some common keys and values.Parameters: hints the rendering hints to be set
See Also: RenderingHints
Clip
with the interior of the
specified Shape
and sets the Clip
to the
resulting intersection. The specified Shape
is
transformed with the current Graphics2D
Transform
before being intersected with the current
Clip
. This method is used to make the current
Clip
smaller.
To make the Clip
larger, use setClip
.
The user clip modified by this method is independent of the
clipping associated with device bounds and visibility. If no clip has
previously been set, or if the clip has been cleared using
java.awt.Graphics#setClip(Shape) setClip
with a
null
argument, the specified Shape
becomes
the new user clip.Parameters: s the Shape
to be intersected with the current
Clip
. If s
is null
,
this method clears the current Clip
.
setClip(null)
,
the specified rectangle becomes the new clip.
This method sets the user clip, which is independent of the
clipping associated with device bounds and window visibility.
This method can only be used to make the current clip smaller.
To set the current clip larger, use any of the setClip methods.
Rendering operations have no effect outside of the clipping area.Parameters: x the x coordinate of the rectangle to intersect the clip with y the y coordinate of the rectangle to intersect the clip with width the width of the rectangle to intersect the clip with height the height of the rectangle to intersect the clip with
See Also: GraphicContext setClip
Returns: a deep copy of this context
Returns: the current Graphics2D
Color
,
which defines the background color.
See Also: GraphicContext
setClip(null)
, this method returns
null
.Returns: a Shape
object representing the
current clipping area, or null
if
no clip is set.
Since: JDK1.1
See Also: java.awt.Graphics#getClipBounds() java.awt.Graphics#clipRect java.awt.Graphics#setClip(int, int, int, int) java.awt.Graphics#setClip(Shape)
setClip(null)
, this method returns
null
.
The coordinates in the rectangle are relative to the coordinate
system origin of this graphics context.Returns: the bounding rectangle of the current clipping area,
or null
if no clip is set.
Since: JDK1.1
See Also: java.awt.Graphics#getClip java.awt.Graphics#clipRect java.awt.Graphics#setClip(int, int, int, int) java.awt.Graphics#setClip(Shape)
Returns: this graphics context's current color.
See Also: java.awt.Color java.awt.Graphics#setColor
Composite
in the
Graphics2D
context.Returns: the current Graphics2D
Composite
,
which defines a compositing style.
See Also: GraphicContext
Returns: this graphics context's current font.
See Also: java.awt.Font java.awt.Graphics#setFont
Font
within this
Graphics2D
context.
The FontRenderContext
encapsulates application hints such as anti-aliasing and
fractional metrics, as well as target device specific information
such as dots-per-inch. This information should be provided by the
application when using objects that perform typographical
formatting, such as Font
and
TextLayout
. This information should also be provided
by applications that perform their own layout and need accurate
measurements of various characteristics of glyphs such as advance
and line height when various rendering hints have been applied to
the text rendering.
Returns: a reference to an instance of FontRenderContext.
Since: JDK1.2
See Also: java.awt.font.FontRenderContext java.awt.Font#createGlyphVector(FontRenderContext,char[])
java.awt.font.TextLayout
Paint
of the
Graphics2D
context.Returns: the current Graphics2D
Paint
,
which defines a color or pattern.
See Also: GraphicContext java.awt.Graphics#setColor
RenderingHints
class for definitions of some common
keys and values.Parameters: hintKey the key corresponding to the hint to get.
Returns: an object representing the value for the specified hint key.
Some of the keys and their associated values are defined in the
RenderingHints
class.
See Also: RenderingHints
RenderingHints
class for definitions of some common
keys and values.Returns: a reference to an instance of RenderingHints
that contains the current preferences.
See Also: RenderingHints
Stroke
in the
Graphics2D
context.Returns: the current Graphics2D
Stroke
,
which defines the line style.
See Also: GraphicContext
Transform
in the
Graphics2D
context.Returns: the current AffineTransform
in the
Graphics2D
context.
See Also: transform GraphicContext
Returns: array containing the successive transforms that were concatenated with the original one.
Graphics2D
Transform
with a rotation transform.
Subsequent rendering is rotated by the specified radians relative
to the previous origin.
This is equivalent to calling transform(R)
, where R is an
AffineTransform
represented by the following matrix:
[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]Rotating with a positive angle theta rotates points on the positive x axis toward the positive y axis.
Parameters: theta the angle of rotation in radians
Graphics2D
Transform
with a translated rotation
transform. Subsequent rendering is transformed by a transform
which is constructed by translating to the specified location,
rotating by the specified radians, and translating back by the same
amount as the original translation. This is equivalent to the
following sequence of calls:
translate(x, y); rotate(theta); translate(-x, -y);Rotating with a positive angle theta rotates points on the positive x axis toward the positive y axis.
Parameters: theta the angle of rotation in radians x x coordinate of the origin of the rotation y y coordinate of the origin of the rotation
Graphics2D
Transform
with a scaling transformation
Subsequent rendering is resized according to the specified scaling
factors relative to the previous scaling.
This is equivalent to calling transform(S)
, where S is an
AffineTransform
represented by the following matrix:
[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
Parameters: sx the amount by which X coordinates in subsequent rendering operations are multiplied relative to previous rendering operations. sy the amount by which Y coordinates in subsequent rendering operations are multiplied relative to previous rendering operations.
Graphics2D
context.
The background color is used for clearing a region.
When a Graphics2D
is constructed for a
Component
, the background color is
inherited from the Component
. Setting the background color
in the Graphics2D
context only affects the subsequent
clearRect
calls and not the background color of the
Component
. To change the background
of the Component
, use appropriate methods of
the Component
.Parameters: color the background color that isused in
subsequent calls to clearRect
See Also: GraphicContext java.awt.Graphics#clearRect
Parameters: x the x coordinate of the new clip rectangle. y the y coordinate of the new clip rectangle. width the width of the new clip rectangle. height the height of the new clip rectangle.
Since: JDK1.1
See Also: java.awt.Graphics#clipRect java.awt.Graphics#setClip(Shape)
Shape
interface can be used to set the clip. The only
Shape
objects that are guaranteed to be
supported are Shape
objects that are
obtained via the getClip
method and via
Rectangle
objects. This method sets the
user clip, which is independent of the clipping associated
with device bounds and window visibility.Parameters: clip the Shape
to use to set the clip
Since: JDK1.1
See Also: java.awt.Graphics#getClip() java.awt.Graphics#clipRect java.awt.Graphics#setClip(int, int, int, int)
Parameters: c the new rendering color.
See Also: java.awt.Color java.awt.Graphics#getColor
Composite
for the Graphics2D
context.
The Composite
is used in all drawing methods such as
drawImage
, drawString
, draw
,
and fill
. It specifies how new pixels are to be combined
with the existing pixels on the graphics device during the rendering
process.
If this Graphics2D
context is drawing to a
Component
on the display screen and the
Composite
is a custom object rather than an
instance of the AlphaComposite
class, and if
there is a security manager, its checkPermission
method is called with an AWTPermission("readDisplayPixels")
permission.
Parameters: comp the Composite
object to be used for rendering
Throws: SecurityException
if a custom Composite
object is being
used to render to the screen and a security manager
is set and its checkPermission
method
does not allow the operation.
See Also: java.awt.Graphics#setXORMode java.awt.Graphics#setPaintMode java.awt.AlphaComposite
Parameters: font the font.
See Also: java.awt.Graphics#getFont
Paint
attribute for the
Graphics2D
context. Calling this method
with a null
Paint
object does
not have any effect on the current Paint
attribute
of this Graphics2D
.Parameters: paint the Paint
object to be used to generate
color during the rendering process, or null
See Also: java.awt.Graphics#setColor java.awt.GradientPaint java.awt.TexturePaint
RenderingHints
class for definitions of some common
keys and values.Parameters: hintKey the key of the hint to be set. hintValue the value indicating preferences for the specified hint category.
See Also: RenderingHints
hints
.
The existing values for all rendering hints are discarded and
the new set of known hints and values are initialized from the
specified Map object.
Hint categories include controls for rendering quality and
overall time/quality trade-off in the rendering process.
Refer to the RenderingHints
class for definitions of
some common keys and values.Parameters: hints the rendering hints to be set
See Also: RenderingHints
Stroke
for the Graphics2D
context.Parameters: s the Stroke
object to be used to stroke a
Shape
during the rendering process
See Also: BasicStroke
Transform
in the Graphics2D
context.Parameters: Tx the AffineTransform
object to be used in the
rendering process
See Also: transform AffineTransform
Graphics2D
Transform
with a shearing transform.
Subsequent renderings are sheared by the specified
multiplier relative to the previous position.
This is equivalent to calling transform(SH)
, where SH
is an AffineTransform
represented by the following
matrix:
[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
Parameters: shx the multiplier by which coordinates are shifted in the positive X axis direction as a function of their Y coordinate shy the multiplier by which coordinates are shifted in the positive Y axis direction as a function of their X coordinate
AffineTransform
object with the
Transform
in this Graphics2D
according
to the rule last-specified-first-applied. If the current
Transform
is Cx, the result of composition
with Tx is a new Transform
Cx'. Cx' becomes the
current Transform
for this Graphics2D
.
Transforming a point p by the updated Transform
Cx' is
equivalent to first transforming p by Tx and then transforming
the result by the original Transform
Cx. In other
words, Cx'(p) = Cx(Tx(p)). A copy of the Tx is made, if necessary,
so further modifications to Tx do not affect rendering.Parameters: Tx the AffineTransform
object to be composed with
the current Transform
See Also: GraphicContext AffineTransform
Parameters: x the x coordinate. y the y coordinate.
Graphics2D
Transform
with a translation transform.
Subsequent rendering is translated by the specified
distance relative to the previous position.
This is equivalent to calling transform(T), where T is an
AffineTransform
represented by the following matrix:
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
Parameters: tx the distance to translate along the x-axis ty the distance to translate along the y-axis