Previous | Next | Trail Map | 2D Graphics | Overview of the Java 2D API

Java 2D Rendering

The basic rendering mechanism is the same as in previous versions of the JDK--the drawing system controls when and how programs can draw. When a component needs to be displayed, that component's paint or update method is automatically invoked with an appropriate Graphics context.

The Java 2D API introduces a new type of Graphics object, java.awt.Graphics2D(in the API reference documentation) Graphics2D extends the Graphics(in the API reference documentation) class to provide access to the enhanced graphics and rendering features of the Java 2D API.

To use Java 2D API features, you cast the Graphics object passed into a component's rendering method to a Graphics2D object. For example:

 
public void Paint (Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    ...
}

Graphics2D Rendering Context

The collection of state attributes associated with a Graphics2D object is referred to as the Graphics2D rendering context . To display text, shapes, or images, you set up the Graphics2D rendering context and then call one of the Graphics2D rendering methods, such as draw or fill . The Graphics2D rendering context contains attributes that define:

The pen style that is applied to the outline of a shape. This stroke attribute enables you to draw lines with any point size and dashing pattern and apply endcap and join decorations to a line.

The fill style that is applied to a shape's interior. This paint attribute enables you to fill shapes with solid colors, gradients, and patterns.

The compositing style used when rendered objects overlap existing objects.

The transform applied during rendering that converts the rendered object from user space to device space coordinates and applies optional translation, rotation, scaling, or shearing transforms.

The clip restricts rendering to the area within the outline of the Shape used to define the clipping path. Any Shape can be used to define the clip.

The Font used to convert text strings to glyphs.

Rendering hints that specify preferences in the trade-offs between speed and quality. For example, you can specify whether or not antialiasing should be used if it's available.

To set an attribute in the Graphics2D rendering context, you use the set Attribute methods:

When you set an attribute, you pass in the appropriate attribute object. For example, to change the paint attribute to a blue-green gradient fill, you would construct a GradientPaint object and then call setPaint :

gp = new GradientPaint(0f,0f,blue,0f,30f,green);
g2.setPaint(gp);

Graphics2D holds references to its attribute objects--they are not cloned. If you alter an attribute object that is part of the Graphics2D context, you need to call the appropriate set method to notify the context. Modifying an attribute object during rendering causes unpredictable behavior.

Graphics2D Rendering Methods

Graphics2D provides general rendering methods that can be used to draw any geometry primitive, text, or image:

In addition, Graphics2D supports the Graphics rendering methods for particular shapes, such as drawOval and fillRect .


Previous | Next | Trail Map | 2D Graphics | Overview of the Java 2D API