Paint interface defines how color patterns
can be generated for Graphics2D
operations. A class
implementing the Paint interface is added to the
Graphics2D context in order to define the color
pattern used by the draw and fill methods.
Instances of classes implementing Paint must be
read-only because the Graphics2D does not clone
these objects when they are set as an attribute with the
setPaint method or when the Graphics2D
object is itself cloned.
Since the API documentation was not specific about this in
releases before 1.4, there may be implementations of
Paint that do not accept a null
ColorModel argument.
If a developer is writing code which passes a null
ColorModel argument to the
createContext method of Paint
objects from arbitrary sources it would be wise to code defensively
by manufacturing a non-null ColorModel for those
objects which throw a NullPointerException.
Transparency.