Class FlatDropShadowBorder

  • All Implemented Interfaces:
    FlatStylingSupport.StyleableBorder, java.io.Serializable, javax.swing.border.Border, javax.swing.plaf.UIResource

    public class FlatDropShadowBorder
    extends FlatEmptyBorder
    implements FlatStylingSupport.StyleableBorder
    Paints a drop shadow border around the component. Supports 1-sided, 2-side, 3-sided or 4-sided drop shadows.

    The shadow insets allow specifying drop shadow thickness for each side. A zero or negative value hides the drop shadow on that side. A negative value can be used to indent the drop shadow on corners. E.g. -4 on left indents drop shadow at top-left and bottom-left corners by 4 pixels.

    See Also:
    Serialized Form
    • Field Detail

      • shadowColor

        protected java.awt.Color shadowColor
      • shadowInsets

        protected java.awt.Insets shadowInsets
      • shadowOpacity

        protected float shadowOpacity
      • shadowSize

        private int shadowSize
      • shadowImage

        private java.awt.Image shadowImage
      • lastShadowColor

        private java.awt.Color lastShadowColor
      • lastShadowOpacity

        private float lastShadowOpacity
      • lastShadowSize

        private int lastShadowSize
      • lastSystemScaleFactor

        private double lastSystemScaleFactor
      • lastUserScaleFactor

        private float lastUserScaleFactor
    • Constructor Detail

      • FlatDropShadowBorder

        public FlatDropShadowBorder()
      • FlatDropShadowBorder

        public FlatDropShadowBorder​(java.awt.Color shadowColor)
      • FlatDropShadowBorder

        public FlatDropShadowBorder​(java.awt.Color shadowColor,
                                    int shadowSize,
                                    float shadowOpacity)
      • FlatDropShadowBorder

        public FlatDropShadowBorder​(java.awt.Color shadowColor,
                                    java.awt.Insets shadowInsets,
                                    float shadowOpacity)
    • Method Detail

      • nonNegativeInsets

        private static java.awt.Insets nonNegativeInsets​(java.awt.Insets shadowInsets)
      • maxInset

        private int maxInset​(java.awt.Insets shadowInsets)
      • paintBorder

        public void paintBorder​(java.awt.Component c,
                                java.awt.Graphics g,
                                int x,
                                int y,
                                int width,
                                int height)
        Specified by:
        paintBorder in interface javax.swing.border.Border
        Overrides:
        paintBorder in class javax.swing.border.EmptyBorder
      • paintImpl

        private void paintImpl​(java.awt.Graphics2D g,
                               int x,
                               int y,
                               int width,
                               int height,
                               double scaleFactor)
      • scale

        private int scale​(int value,
                          double scaleFactor)
      • createShadowImage

        private static java.awt.image.BufferedImage createShadowImage​(java.awt.Color shadowColor,
                                                                      int shadowSize,
                                                                      float shadowOpacity,
                                                                      float scaleFactor)