The Java 2D API and its implementation is often not easily separable from other parts of the Java platform.
Generally it implements geometry, text and image APIs and renders these to screen and printer devices using software, or hardware accelerated means, depending on implementation and/or application or user specified system properties.
Very briefly, the core of the API is the class java.awt.Graphics2D. It provides methods for the rendering operations, as well as controlling the state of the Graphics instance.
There's a large supporting cast of classes in the packages
java.awt
java.awt.color
java.awt.font
java.awt.geom
java.awt.image
java.awt.print
(Java 2D printing to a printer graphics)javax.imageio
(aka Image I/O)javax.print
(aka the Java Printing Service, works with java.awt.print)
Image I/O provides the means to load and save sampled images where the in-process image use Java2D's image format.
javax.print
is tightly integrated with the java.awt.print package which is the 2D API for rendering to printer graphics devices.
There is a wealth of information on the Java 2D API for application developers. e.g. See: