org.jdesktop.swingx.util
Class PaintUtils

java.lang.Object
  extended by org.jdesktop.swingx.util.PaintUtils

public class PaintUtils
extends Object

A collection of utilities for working with Paints and Colors.

Author:
Mark Davidson, joshua.marinacci@sun.com, Karl George Schaefer

Field Summary
static GradientPaint AERITH
           
static Paint BLACK_STAR
           
static GradientPaint BLUE_EXPERIENCE
           
static GradientPaint GRAY
           
static GradientPaint MAC_OSX
           
static GradientPaint MAC_OSX_SELECTED
           
static GradientPaint NIGHT_GRAY
           
static GradientPaint NIGHT_GRAY_LIGHT
           
static Paint ORANGE_DELIGHT
           
static GradientPaint RED_XP
           
 
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()
          Creates a new Paint that is a checkered effect using the colors gray and Color.WHITE.
static Paint getCheckerPaint(Paint c1, Paint c2, int size)
          Creates a new Paint that is a checkered effect using the specified colors.
static Color interpolate(Color b, Color a, float t)
          Interpolates a color.
static Color removeAlpha(Color color)
          Returns a new color equal to the old one, except that there is no alpha (transparency) channel.
static Paint resizeGradient(Paint p, int width, int height)
          Resizes a gradient to fill the width and height available.
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 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
 

Field Detail

BLUE_EXPERIENCE

public static final GradientPaint BLUE_EXPERIENCE

MAC_OSX_SELECTED

public static final GradientPaint MAC_OSX_SELECTED

MAC_OSX

public static final GradientPaint MAC_OSX

AERITH

public static final GradientPaint AERITH

GRAY

public static final GradientPaint GRAY

RED_XP

public static final GradientPaint RED_XP

NIGHT_GRAY

public static final GradientPaint NIGHT_GRAY

NIGHT_GRAY_LIGHT

public static final GradientPaint NIGHT_GRAY_LIGHT

ORANGE_DELIGHT

public static final Paint ORANGE_DELIGHT

BLACK_STAR

public static final Paint BLACK_STAR
Method Detail

resizeGradient

public static Paint resizeGradient(Paint p,
                                   int width,
                                   int height)
Resizes a gradient to fill the width and height available. If the gradient is left to right it will be resized to fill the entire width. If the gradient is top to bottom it will be resized to fill the entire height. If the gradient is on an angle it will be resized to go from one corner to the other of the rectangle formed by (0,0 -> width,height). This method can resize java.awt.GradientPaint, java.awt.LinearGradientPaint, and the LinearGradientPaint implementation from Apache's Batik project. Note, this method does not require the MultipleGradientPaint.jar from Apache to compile or to run. MultipleGradientPaint.jar *is* required if you want to resize the LinearGradientPaint from that jar. Any paint passed into this method which is not a kind of gradient paint (like a Color or TexturePaint) will be returned unmodified. It will not throw an exception. If the gradient cannot be resized due to other errors the original paint will be returned unmodified. It will not throw an exception.


getCheckerPaint

public static Paint getCheckerPaint()
Creates a new Paint that is a checkered effect using the colors gray and Color.WHITE.

Returns:
a the checkered paint

getCheckerPaint

public static Paint getCheckerPaint(Paint c1,
                                    Paint c2,
                                    int size)
Creates a new Paint that is a checkered effect using the specified colors.

While this method supports transparent colors, this implementation performs painting operations using the second color after it performs operations using the first color. This means that to create a checkered paint with a fully-transparent color, you MUST specify that color first.

Parameters:
c1 - the first color
c2 - the second color
size - the size of the paint
Returns:
a new Paint checkering the supplied colors

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

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

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 as 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

interpolate

public static Color interpolate(Color b,
                                Color a,
                                float t)
Interpolates a color.

Parameters:
b - the first color
a - the second color
t - the amount to interpolate
Returns:
a new color

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


Copyright © 2012. All Rights Reserved.