Just as a Graphics2D
object’s current paint determines how its shapes are filled, its current
stroke determines how its shapes are outlined. The current stroke
determines such drawing features as line thickness, line dashing, and end
styles. In the old days, lines were one pixel wide and that was that. With
Java 2D, line thickness can be set with floating-point accuracy and the
results, like everything else, are subject to the rendering pipeline’s
transformations and scaling.
To set the current stroke in Graphics2D
, call setStroke()
with any
implementation of the Stroke
interface.
Fortunately, the 2D API includes a BasicStroke
class that
probably does everything you need. Using BasicStroke
, you can create dashed lines,
control the decoration that is added to line ends, and decide how the
corners in an outline should be drawn.
By default, Graphics2D
uses a
solid stroke with a width of 1. In the previous Iguana
example, the line width is changed just
before the outline of the rounded rectangle is drawn, like so:
g2
.
setStroke
(
new
BasicStroke
(
4
));
Get Learning Java, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.