org.jdesktop.swingx.color
Class ColorUtil

java.lang.Object
  extended by org.jdesktop.swingx.color.ColorUtil

public class ColorUtil
extends Object

A collection of utility methods for working with Colors.


Constructor Summary
ColorUtil()
           
 
Method Summary
static Color blend(Color origin, Color over)
          Blends two colors to create a new color.
static Color computeForeground(Color bg)
          Computes an appropriate foreground color (either white or black) for the given background color.
static Paint getCheckerPaint()
          Obtain a java.awt.Paint instance which draws a checker background of black and white.
static Paint getCheckerPaint(Color c1, Color c2, int size)
           
static Color interpolate(Color b, Color a, float t)
           
static Color removeAlpha(Color color)
          Returns a new color equal to the old one, except that there is no alpha (transparency) channel.
static Color setAlpha(Color color, int alpha)
          Returns a new color equal to the old one, except alpha (transparency) channel is set to the new value.
static Color setBrightness(Color color, float brightness)
          Returns a new color equal to the old one, except the brightness is set to the new value.
static Color setSaturation(Color color, float saturation)
          Returns a new color equal to the old one, except the saturation is set to the new value.
static void tileStretchPaint(Graphics g, JComponent comp, BufferedImage img, Insets ins)
          Draws an image on top of a component by doing a 3x3 grid stretch of the image using the specified insets.
static String toHexString(Color color)
          Creates a String that represents the supplied color as a hex-value RGB triplet, including the "#".
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ColorUtil

public ColorUtil()
Method Detail

removeAlpha

public static Color removeAlpha(Color color)
Returns a new color equal to the old one, except that there is no alpha (transparency) channel.

This method is a convenience and has the same effect as setAlpha(color, 255).

Parameters:
color - the color to remove the alpha (transparency) from
Returns:
a new non-transparent Color
Throws:
NullPointerException - if color is null

setAlpha

public static Color setAlpha(Color color,
                             int alpha)
Returns a new color equal to the old one, except alpha (transparency) channel is set to the new value.

Parameters:
color - the color to modify
alpha - the new alpha (transparency) level. Must be an int between 0 and 255
Returns:
a new alpha-applied Color
Throws:
IllegalArgumentException - if alpha is not between 0 and 255 inclusive
NullPointerException - if color is null

setSaturation

public static Color setSaturation(Color color,
                                  float saturation)
Returns a new color equal to the old one, except the saturation is set to the new value. The new color will have the same alpha (transparency) as the original color.

The color is modified using HSB calculations. The saturation must be a float between 0 and 1. If 0 the resulting color will be gray. If 1 the resulting color will be the most saturated possible form of the passed in color.

Parameters:
color - the color to modify
saturation - the saturation to use in the new color
Returns:
a new saturation-applied Color
Throws:
IllegalArgumentException - if saturation is not between 0 and 1 inclusive
NullPointerException - if color is null

setBrightness

public static Color setBrightness(Color color,
                                  float brightness)
Returns a new color equal to the old one, except the brightness is set to the new value. The new color will have the same alpha (transparency) as the original color.

The color is modified using HSB calculations. The brightness must be a float between 0 and 1. If 0 the resulting color will be black. If 1 the resulting color will be the brightest possible form of the passed in color.

Parameters:
color - the color to modify
brightness - the brightness to use in the new color
Returns:
a new brightness-applied Color
Throws:
IllegalArgumentException - if brightness is not between 0 and 1 inclusive
NullPointerException - if color is null

toHexString

public static String toHexString(Color color)
Creates a String that represents the supplied color as a hex-value RGB triplet, including the "#". The return value is suitable for use in HTML. The alpha (transparency) channel is neither include nor used in producing the string.

Parameters:
color - the color to convert
Returns:
the hex String

computeForeground

public static Color computeForeground(Color bg)
Computes an appropriate foreground color (either white or black) for the given background color.

Parameters:
bg - the background color
Returns:
Color.WHITE or Color.BLACK
Throws:
NullPointerException - if bg is null

blend

public static Color blend(Color origin,
                          Color over)
Blends two colors to create a new color. The origin color is the base for the new color and regardless of its alpha component, it is treated a fully opaque (alpha 255).

Parameters:
origin - the base of the new color
over - the alpha-enabled color to add to the origin color
Returns:
a new color comprised of the origin and over colors

getCheckerPaint

public static Paint getCheckerPaint()
Obtain a java.awt.Paint instance which draws a checker background of black and white. Note: The returned instance may be shared. Note: This method should be reimplemented to not use a png resource.

Returns:
a Paint implementation

getCheckerPaint

public static Paint getCheckerPaint(Color c1,
                                    Color c2,
                                    int size)

tileStretchPaint

public static void tileStretchPaint(Graphics g,
                                    JComponent comp,
                                    BufferedImage img,
                                    Insets ins)
Draws an image on top of a component by doing a 3x3 grid stretch of the image using the specified insets.

TODO this is image related; move to GraphicsUtilities


interpolate

public static Color interpolate(Color b,
                                Color a,
                                float t)