@Override public Icon getDisabledIcon(JComponent component, Icon icon) { if (icon instanceof SynthIcon) { SynthIcon si = (SynthIcon) icon; BufferedImage img = EffectUtils.createCompatibleTranslucentImage(si.getIconWidth(), si.getIconHeight()); Graphics2D gfx = img.createGraphics(); si.paintIcon(component, gfx, 0, 0); gfx.dispose(); return new ImageIconUIResource(GrayFilter.createDisabledImage(img)); } else { return super.getDisabledIcon(component, icon); } }