org.jdesktop.swingx.border
Class DropShadowBorder

java.lang.Object
  extended by org.jdesktop.swingx.border.DropShadowBorder
All Implemented Interfaces:
Serializable, Border

public class DropShadowBorder
extends Object
implements Border, Serializable

Implements a DropShadow for components. In general, the DropShadowBorder will work with any rectangular components that do not have a default border installed as part of the look and feel, or otherwise. For example, DropShadowBorder works wonderfully with JPanel, but horribly with JComboBox.

Note: DropShadowBorder should usually be added to non-opaque components, otherwise the background is likely to bleed through.

Note: Since generating drop shadows is relatively expensive operation, DropShadowBorder keeps internal static cache that allows sharing same border for multiple re-rendering and between different instances of the class. Since this cache is shared at class level and never reset, it might bleed your app memory in case you tend to create many different borders rapidly.

See Also:
Serialized Form

Constructor Summary
DropShadowBorder()
           
DropShadowBorder(boolean showLeftShadow)
           
DropShadowBorder(Color shadowColor, int shadowSize)
           
DropShadowBorder(Color shadowColor, int shadowSize, float shadowOpacity, int cornerSize, boolean showTopShadow, boolean showLeftShadow, boolean showBottomShadow, boolean showRightShadow)
           
 
Method Summary
 Insets getBorderInsets(Component c)
          Returns the insets of the border.
 int getCornerSize()
           
 Color getShadowColor()
           
 float getShadowOpacity()
           
 int getShadowSize()
           
 boolean isBorderOpaque()
          Returns whether or not the border is opaque.
 boolean isShowBottomShadow()
           
 boolean isShowLeftShadow()
           
 boolean isShowRightShadow()
           
 boolean isShowTopShadow()
           
 void paintBorder(Component c, Graphics graphics, int x, int y, int width, int height)
          Paints the border for the specified component with the specified position and size.
 void setCornerSize(int cornerSize)
           
 void setShadowColor(Color shadowColor)
           
 void setShadowOpacity(float shadowOpacity)
           
 void setShadowSize(int shadowSize)
           
 void setShowBottomShadow(boolean showBottomShadow)
           
 void setShowLeftShadow(boolean showLeftShadow)
           
 void setShowRightShadow(boolean showRightShadow)
           
 void setShowTopShadow(boolean showTopShadow)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DropShadowBorder

public DropShadowBorder()

DropShadowBorder

public DropShadowBorder(Color shadowColor,
                        int shadowSize)

DropShadowBorder

public DropShadowBorder(boolean showLeftShadow)

DropShadowBorder

public DropShadowBorder(Color shadowColor,
                        int shadowSize,
                        float shadowOpacity,
                        int cornerSize,
                        boolean showTopShadow,
                        boolean showLeftShadow,
                        boolean showBottomShadow,
                        boolean showRightShadow)
Method Detail

setShadowColor

public void setShadowColor(Color shadowColor)

setShadowSize

public void setShadowSize(int shadowSize)

setShadowOpacity

public void setShadowOpacity(float shadowOpacity)

setCornerSize

public void setCornerSize(int cornerSize)

setShowTopShadow

public void setShowTopShadow(boolean showTopShadow)

setShowLeftShadow

public void setShowLeftShadow(boolean showLeftShadow)

setShowBottomShadow

public void setShowBottomShadow(boolean showBottomShadow)

setShowRightShadow

public void setShowRightShadow(boolean showRightShadow)

paintBorder

public void paintBorder(Component c,
                        Graphics graphics,
                        int x,
                        int y,
                        int width,
                        int height)
Paints the border for the specified component with the specified position and size.

Specified by:
paintBorder in interface Border
Parameters:
c - the component for which this border is being painted
graphics - the paint graphics
x - the x position of the painted border
y - the y position of the painted border
width - the width of the painted border
height - the height of the painted border

getBorderInsets

public Insets getBorderInsets(Component c)
Description copied from interface: javax.swing.border.Border
Returns the insets of the border.

Specified by:
getBorderInsets in interface Border
Parameters:
c - the component for which this border insets value applies

isBorderOpaque

public boolean isBorderOpaque()
Returns whether or not the border is opaque. If the border is opaque, it is responsible for filling in it's own background when painting.

Specified by:
isBorderOpaque in interface Border

isShowTopShadow

public boolean isShowTopShadow()

isShowLeftShadow

public boolean isShowLeftShadow()

isShowRightShadow

public boolean isShowRightShadow()

isShowBottomShadow

public boolean isShowBottomShadow()

getShadowSize

public int getShadowSize()

getShadowColor

public Color getShadowColor()

getShadowOpacity

public float getShadowOpacity()

getCornerSize

public int getCornerSize()