Module java.desktop

Class CompoundBorder

  • All Implemented Interfaces:
    Serializable, Border
    Direct Known Subclasses:
    BorderUIResource.CompoundBorderUIResource

    public class CompoundBorder
    extends AbstractBorder
    A composite Border class used to compose two Border objects into a single border by nesting an inside Border object within the insets of an outside Border object. For example, this class may be used to add blank margin space to a component with an existing decorative border:
        Border border = comp.getBorder();
        Border margin = new EmptyBorder(10,10,10,10);
        comp.setBorder(new CompoundBorder(border, margin));
     

    Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the java.beans package. Please see XMLEncoder.

    See Also:
    Serialized Form
    • Field Detail

      • outsideBorder

        protected Border outsideBorder
        The outside border.
      • insideBorder

        protected Border insideBorder
        The inside border.
    • Constructor Detail

      • CompoundBorder

        public CompoundBorder()
        Creates a compound border with null outside and inside borders.
      • CompoundBorder

        @ConstructorProperties({"outsideBorder","insideBorder"})
        public CompoundBorder​(Border outsideBorder,
                              Border insideBorder)
        Creates a compound border with the specified outside and inside borders. Either border may be null.
        Parameters:
        outsideBorder - the outside border
        insideBorder - the inside border to be nested
    • Method Detail

      • isBorderOpaque

        public boolean isBorderOpaque()
        Returns whether or not the compound border is opaque.
        Specified by:
        isBorderOpaque in interface Border
        Overrides:
        isBorderOpaque in class AbstractBorder
        Returns:
        true if the inside and outside borders are each either null or opaque; or false otherwise
      • paintBorder

        public void paintBorder​(Component c,
                                Graphics g,
                                int x,
                                int y,
                                int width,
                                int height)
        Paints the compound border by painting the outside border with the specified position and size and then painting the inside border at the specified position and size offset by the insets of the outside border.
        Specified by:
        paintBorder in interface Border
        Overrides:
        paintBorder in class AbstractBorder
        Parameters:
        c - the component for which this border is being painted
        g - 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,
                                      Insets insets)
        Reinitialize the insets parameter with this Border's current Insets.
        Overrides:
        getBorderInsets in class AbstractBorder
        Parameters:
        c - the component for which this border insets value applies
        insets - the object to be reinitialized
        Returns:
        the insets object
      • getOutsideBorder

        public Border getOutsideBorder()
        Returns the outside border object.
        Returns:
        the outside Border object
      • getInsideBorder

        public Border getInsideBorder()
        Returns the inside border object.
        Returns:
        the inside Border object