Java Reference
In-Depth Information
paint()
.Youcanworkwiththisinstanceasa
Graphics
instanceor(aftercasting
Graphics
to
Graphics2D
) as a
Graphics2D
instance.
The
Graphics2D
subclassinstancethat'spassedtoacomponent's
paint()
meth-
odidentifiesan
output device
(e.g.,monitororprinter)witha
physical drawing surface
(e.g.,rasterscreenorprinterpage).Thissurfaceisassociatedwith
device space
,which
isa2DCartesianplanewhosepixelsareknownas
physical pixels
,andwhichhavein-
teger coordinates.
Typically,theoutputdeviceisthedefaultmonitor,oristhemonitorassociated with
the
GraphicsConfiguration
thatwaspassedtothe
Frame
,
JFrame
,
Window
,
or
JWindow
constructor that contains the component.
Atsomepoint,
Graphics2D
mustmaplogicalpixelstophysicalpixels.Itaccom-
plishesthistaskviaan
affine transformation
(amathematicaltransformationthattrans-
forms straight lines into straight lines and parallel lines into parallel lines).
By default, Java 2D specifies an affine transformation that aligns user space with
device space so that you end up with the coordinate system shown in
Figure 7-7
. Fur-
thermore,itmaps72userspacecoordinatestoonephysicalinch.(Somescalingmaybe
performedbehindthescenestoensurethatthisrelationshipholdsonaparticularoutput
device.)
Youtypicallydon'tneedtobeconcernedwithdevicespaceandthismappingprocess.
Just keep in mind the default 72 user space coordinates to one inch mapping and Java
2DwillmakesurethatyourJava2Dcreationsappearatthepropersizesonvariousout-
put devices.
Rendering Pipeline
Graphics2D
isalsoa
rendering pipeline
thatrenders(processes)shapes,text,andim-
agesintodevice-specificpixelcolors.Thisrenderingpipelinemaintainsaninternalstate
that consists of the following attributes:
•
Paint
: A solid color,
gradient
(transition between two solid colors), or
texture
(replicated image) applied to shape interiors and to a shape's outline shape.
•
Stroke
: An object that creates a shape to specify another shape's outline. The
resulting
outline shape
,whichisalsoknownasa
stroked outline
,isfilledwith
the paint attribute. Outline shapes don't have outlines.
•
Font
:Java2Drenderstextbycreatingshapesthatrepresentthetext'scharacters.
Thefontattributeselectstheshapesthatarecreatedforthesecharacters.These
shapes are then filled.