Here you can find the source of darken(Icon icon)
public static Icon darken(Icon icon)
//package com.java2s; /*/*from w ww . ja va 2 s. c o m*/ * IconUtils.java * * Copyright (c) 2009 JAM Development Team * * This package is distributed under the Lesser Gnu Public Licence (LGPL) * */ import javax.swing.*; import java.awt.*; import java.awt.image.*; public class Main { /** * Returns a slightly darker version of the icon. */ public static Icon darken(Icon icon) { BufferedImage img = getBufferedImageFromIcon(icon); if (img == null) return icon; BufferedImageOp op = new RescaleOp(0.75f, 0, null); return new ImageIcon(op.filter(img, null)); } /** * Creates a buffered image from an icon. */ public static BufferedImage getBufferedImageFromIcon(Icon icon) { BufferedImage buffer = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); Graphics g = buffer.getGraphics(); icon.paintIcon(new JLabel(), g, 0, 0); g.dispose(); return buffer; } }