public void paintIcon(Component c,
Graphics g,
int x,
int y) {
GraphicsConfiguration gc = c.getGraphicsConfiguration();
if (imageCacher == null) {
imageCacher = new ImageCacher();
}
Image image = imageCacher.getImage(gc);
if (image == null) {
if (gc != null) {
image = gc.createCompatibleImage(getIconWidth(),
getIconHeight(),
Transparency.BITMASK);
} else {
image = new BufferedImage(getIconWidth(),
getIconHeight(),
BufferedImage.TYPE_INT_ARGB);
}
Graphics imageG = image.getGraphics();
paintMe(c,imageG);
imageG.dispose();
imageCacher.cacheImage(image, gc);
}
g.drawImage(image, x, y+getShift(), null);
}
|