src/macosx/classes/com/apple/laf/AquaIcon.java
Print this page
@@ -192,10 +192,31 @@
static abstract class CachableJRSUIIcon extends CachingScalingIcon implements UIResource {
public CachableJRSUIIcon(final int width, final int height) {
super(width, height);
}
+ // paint the icon directly from the AquaPainter
+ public void paintIcon(final Component c, Graphics g, final int x, final int y) {
+ if (GraphicsEnvironment.isHeadless()) {
+ return;
+ }
+
+ g = g.create();
+
+ if (g instanceof Graphics2D) {
+ // improves icon rendering quality in Quartz
+ ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ }
+
+ final AquaPainter<JRSUIState> painter = AquaPainter.create(JRSUIState.getInstance());
+ initIconPainter(painter);
+
+ g.setClip(new Rectangle(x, y, getIconWidth(), getIconHeight()));
+ painter.paint(g, c, x, y, getIconWidth(), getIconHeight());
+ g.dispose();
+ }
+
Image createImage() {
final AquaPainter<JRSUIState> painter = AquaPainter.create(JRSUIState.getInstance());
initIconPainter(painter);
final BufferedImage img = new BufferedImage(getIconWidth(), getIconHeight(), BufferedImage.TYPE_INT_ARGB_PRE);