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:
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
DropShadowBorder.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>>
CACHE
private int
cornerSize
private static long
serialVersionUID
private java.awt.Color
shadowColor
private float
shadowOpacity
private int
shadowSize
private boolean
showBottomShadow
private boolean
showLeftShadow
private boolean
showRightShadow
private boolean
showTopShadow
-
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.Insets
getBorderInsets(java.awt.Component c)
int
getCornerSize()
private java.util.Map<DropShadowBorder.Position,java.awt.image.BufferedImage>
getImages(java.awt.Graphics2D g2)
java.awt.Color
getShadowColor()
float
getShadowOpacity()
int
getShadowSize()
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.boolean
isBorderOpaque()
boolean
isShowBottomShadow()
boolean
isShowLeftShadow()
boolean
isShowRightShadow()
boolean
isShowTopShadow()
void
paintBorder(java.awt.Component c, java.awt.Graphics graphics, int x, int y, int width, int height)
void
setCornerSize(int cornerSize)
void
setShadowColor(java.awt.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)
-
-
-
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:
paintBorder
in 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:
getBorderInsets
in interfacejavax.swing.border.Border
-
isBorderOpaque
public boolean isBorderOpaque()
- Specified by:
isBorderOpaque
in 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)
-
-