src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
Print this page
@@ -29,10 +29,15 @@
import java.lang.reflect.Method;
import javax.swing.*;
import javax.swing.plaf.UIResource;
import javax.swing.Painter;
import java.awt.print.PrinterGraphics;
+import sun.awt.image.BufferedImageGraphicsConfig;
+import sun.awt.image.OffScreenImage;
+import sun.awt.image.SunVolatileImage;
+import sun.java2d.SunGraphics2D;
+import sun.swing.JLightweightFrame;
/**
* Convenient base class for defining Painter instances for rendering a
* region or component in Nimbus.
*
@@ -693,12 +698,17 @@
if (buffer != null) {
buffer.flush();
buffer = null;
}
//recreate the buffer
- buffer = config.createCompatibleVolatileImage(w, h,
- Transparency.TRANSLUCENT);
+ if (config instanceof OffScreenImage.GraphicsConfig) {
+ buffer = new OffScreenImage.
+ VolatileImage((OffScreenImage.GraphicsConfig)config,
+ w, h, Transparency.TRANSLUCENT);
+ } else {
+ buffer = config.createCompatibleVolatileImage(w, h, Transparency.TRANSLUCENT);
+ }
// put in cache for future
imageCache.setImage(buffer, config, w, h, this, extendedCacheKeys);
}
//create the graphics context with which to paint to the buffer
Graphics2D bg = buffer.createGraphics();