Many common operations performed on a Graphics object will interrupt
the rendering process by causing rendering pipeline invalidation and
the de-caching of important rendering information. While such validation
may be necessary in some situations, the validation steps are executed
very conservatively in the 1.2 implementations.
For example, the rendering data will be invalidated when the color is
changed from one opaque color to another, when a graphics object is
cloned using the create() method, when a simple integer coordinate
translation is requested, and many other operations which do not
fundamentally change the nature of the rendering algorithms needed
to respond to the various rendering requests.
Since Swing hierarchies typically rely heavily on using the create(),
setColor(), translate(), and clip() methods this can waste a lot of
time during application repaints while the many graphics objects have
their rendering data re-created over and over again during pipeline
invalidations and subsequent validations.