Package org.jdesktop.swingx.border
Class DropShadowBorder
- java.lang.Object
-
- org.jdesktop.swingx.border.DropShadowBorder
-
- All Implemented Interfaces:
java.io.Serializable,javax.swing.border.Border
@JavaBean public class DropShadowBorder extends java.lang.Object implements javax.swing.border.Border, java.io.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:
DropShadowBordershould usually be added to non-opaque components, otherwise the background is likely to bleed through.Note: Since generating drop shadows is relatively expensive operation,
DropShadowBorderkeeps 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classDropShadowBorder.Position
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Map<java.lang.Double,java.util.Map<DropShadowBorder.Position,java.awt.image.BufferedImage>>CACHEprivate intcornerSizeprivate static longserialVersionUIDprivate java.awt.ColorshadowColorprivate floatshadowOpacityprivate intshadowSizeprivate booleanshowBottomShadowprivate booleanshowLeftShadowprivate booleanshowRightShadowprivate booleanshowTopShadow
-
Constructor Summary
Constructors Constructor Description DropShadowBorder()DropShadowBorder(boolean showLeftShadow)DropShadowBorder(java.awt.Color shadowColor, int shadowSize)DropShadowBorder(java.awt.Color shadowColor, int shadowSize, float shadowOpacity, int cornerSize, boolean showTopShadow, boolean showLeftShadow, boolean showBottomShadow, boolean showRightShadow)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.InsetsgetBorderInsets(java.awt.Component c)intgetCornerSize()private java.util.Map<DropShadowBorder.Position,java.awt.image.BufferedImage>getImages(java.awt.Graphics2D g2)java.awt.ColorgetShadowColor()floatgetShadowOpacity()intgetShadowSize()private java.awt.image.BufferedImagegetSubImage(java.awt.image.BufferedImage img, int x, int y, int w, int h)Returns a new BufferedImage that represents a subregion of the given BufferedImage.booleanisBorderOpaque()booleanisShowBottomShadow()booleanisShowLeftShadow()booleanisShowRightShadow()booleanisShowTopShadow()voidpaintBorder(java.awt.Component c, java.awt.Graphics graphics, int x, int y, int width, int height)voidsetCornerSize(int cornerSize)voidsetShadowColor(java.awt.Color shadowColor)voidsetShadowOpacity(float shadowOpacity)voidsetShadowSize(int shadowSize)voidsetShowBottomShadow(boolean showBottomShadow)voidsetShowLeftShadow(boolean showLeftShadow)voidsetShowRightShadow(boolean showRightShadow)voidsetShowTopShadow(boolean showTopShadow)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
CACHE
private static final java.util.Map<java.lang.Double,java.util.Map<DropShadowBorder.Position,java.awt.image.BufferedImage>> CACHE
-
shadowColor
private java.awt.Color shadowColor
-
shadowSize
private int shadowSize
-
shadowOpacity
private float shadowOpacity
-
cornerSize
private int cornerSize
-
showTopShadow
private boolean showTopShadow
-
showLeftShadow
private boolean showLeftShadow
-
showBottomShadow
private boolean showBottomShadow
-
showRightShadow
private boolean showRightShadow
-
-
Constructor Detail
-
DropShadowBorder
public DropShadowBorder()
-
DropShadowBorder
public DropShadowBorder(java.awt.Color shadowColor, int shadowSize)
-
DropShadowBorder
public DropShadowBorder(boolean showLeftShadow)
-
DropShadowBorder
public DropShadowBorder(java.awt.Color shadowColor, int shadowSize, float shadowOpacity, int cornerSize, boolean showTopShadow, boolean showLeftShadow, boolean showBottomShadow, boolean showRightShadow)
-
-
Method Detail
-
paintBorder
public void paintBorder(java.awt.Component c, java.awt.Graphics graphics, int x, int y, int width, int height)- Specified by:
paintBorderin interfacejavax.swing.border.Border
-
getImages
private java.util.Map<DropShadowBorder.Position,java.awt.image.BufferedImage> getImages(java.awt.Graphics2D g2)
-
getSubImage
private java.awt.image.BufferedImage getSubImage(java.awt.image.BufferedImage img, int x, int y, int w, int h)Returns a new BufferedImage that represents a subregion of the given BufferedImage. (Note that this method does not use BufferedImage.getSubimage(), which will defeat image acceleration strategies on later JDKs.)
-
getBorderInsets
public java.awt.Insets getBorderInsets(java.awt.Component c)
- Specified by:
getBorderInsetsin interfacejavax.swing.border.Border
-
isBorderOpaque
public boolean isBorderOpaque()
- Specified by:
isBorderOpaquein interfacejavax.swing.border.Border
-
isShowTopShadow
public boolean isShowTopShadow()
-
isShowLeftShadow
public boolean isShowLeftShadow()
-
isShowRightShadow
public boolean isShowRightShadow()
-
isShowBottomShadow
public boolean isShowBottomShadow()
-
getShadowSize
public int getShadowSize()
-
getShadowColor
public java.awt.Color getShadowColor()
-
getShadowOpacity
public float getShadowOpacity()
-
getCornerSize
public int getCornerSize()
-
setShadowColor
public void setShadowColor(java.awt.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)
-
-