# Class CSSBorder

java.lang.Object
com.codename1.ui.plaf.Border
com.codename1.ui.plaf.CSSBorder

public class CSSBorder extends Border

A border that can be configured using a limited subset of CSS directives. This class is designed as a stop-gap to deal with common CSS style patterns that aren't well-covered by existing borders. As time goes on this class will be enhanced to support more CSS styles. At present, it is used by the CSS compiler for compound borders. E.g. If one side has a different border style, color, or thickness than other sides.

The follow types of borders are well-supported with this class:

- border-radius - can support different x and y radii for each corner.

- border-width - can support different widths for each side.

- border-color - can support different colors for each side

- background-color

This class also supports background images and gradients, but these are not well-tested and are not currently used by the CSS compiler.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final byte`
  `HPOSITION_CENTER`
  Constant indicating background-position center (horizontal).
  `static final byte`
  `HPOSITION_LEFT`
  Constant indicating background-position left.
  `static final byte`
  `HPOSITION_OTHER`
  `static final byte`
  `HPOSITION_RIGHT`
  Constant indicating background-position right.
  `static final byte`
  `REPEAT_BOTH`
  Constant indicating repeating on both x and y for background images.
  `static final byte`
  `REPEAT_NONE`
  Constant indicating no-repeat for background images.
  `static final byte`
  `REPEAT_X`
  Constant indicating repeat-x for background images.
  `static final byte`
  `REPEAT_Y`
  Constant indicating repeat-y for background images.
  `static final byte`
  `SIZE_AUTO`
  `static final byte`
  `SIZE_CONTAIN`
  `static final byte`
  `SIZE_COVER`
  `static final byte`
  `SIZE_OTHER`
  `static final byte`
  `STYLE_DASHED`
  Constant for border-style dashed
  `static final byte`
  `STYLE_DOTTED`
  Constant for border-style dotted
  `static final byte`
  `STYLE_HIDDEN`
  Constant for border-style hidden
  `static final byte`
  `STYLE_NONE`
  Constant for border-style none
  `static final byte`
  `STYLE_SOLID`
  Constant for border-style solid
  `static final byte`
  `UNIT_EM`
  Constant for unit em
  `static final byte`
  `UNIT_MM`
  Constant for unit mm
  `static final byte`
  `UNIT_PERCENT`
  Constant for unit %
  `static final byte`
  `UNIT_PIXELS`
  Constant for unit px
  `static final byte`
  `VPOSITION_BOTTOM`
  Constant indicating background-position bottom.
  `static final byte`
  `VPOSITION_CENTER`
  Constant indicating background-position center.
  `static final byte`
  `VPOSITION_OTHER`
  `static final byte`
  `VPOSITION_TOP`
  Constant indicating background-position top.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CSSBorder()`
  Creates a new empty CSS border.
  `CSSBorder(Resources res)`
  Creates an empty border.
  `CSSBorder(Resources res, String css)`
  Creates a new CSS border with the provided CSS styles.
  `CSSBorder(String css)`
  Creates a new CSS border with the provided CSS styles.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CSSBorder`
  `backgroundColor(String color)`
  Sets the background color of the border.
  `CSSBorder`
  `backgroundImage(Image... images)`
  Sets the background image of the border.
  `CSSBorder`
  `backgroundImage(String cssDirective)`
  Adds one or more background images from a CSS background-image property.
  `CSSBorder`
  `backgroundPosition(String... pos)`
  Sets the background position.
  `CSSBorder`
  `backgroundRepeat(String... repeat)`
  Sets the background-repeat for the background images.
  `CSSBorder`
  `borderColor(String... colors)`
  Sets the border colors.
  `CSSBorder`
  `borderImage(Image borderImage, double... slicePoints)`
  Creates a 9-piece image border.
  `CSSBorder`
  `borderImageWithName(String borderImageName, double... slicePoints)`
  Adds a 9-piece image border using the provided image name, which should exist in the theme resource file.
  `CSSBorder`
  `borderRadius(String radius)`
  Sets the border radius for rounded corners.
  `CSSBorder`
  `borderStroke(String... strokeStrs)`
  Sets the border stroke.
  `CSSBorder`
  `borderStyle(String... styles)`
  Sets the border styles.
  `CSSBorder`
  `borderWidth(String... widths)`
  Sets the border widths.
  `CSSBorder`
  `boxShadow(String value)`
  `boolean`
  `equals(Object obj)`
  {{Indicates whether some other object is "equal to" this one.
  `int`
  `getMinimumHeight()`
  Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g.
  `int`
  `getMinimumWidth()`
  Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g.
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `boolean`
  `isBackgroundPainter()`
  Returns true if installing this border will override the painting of the component background
  `void`
  `paintBorderBackground(Graphics g, Component c)`
  Has effect when the border demands responsibility for background painting normally the painter will perform this work but in this case the border might do it instead.
  `String`
  `toCSSString()`
  Converts this border to a CSS string.

  ### Methods inherited from class Border

  `addOuterBorder, clearImageBorderSpecialTile, createBevelLowered, createBevelLowered, createBevelRaised, createBevelRaised, createCompoundBorder, createDashedBorder, createDashedBorder, createDottedBorder, createDottedBorder, createDoubleBorder, createDoubleBorder, createEmpty, createEtchedLowered, createEtchedLowered, createEtchedRaised, createEtchedRaised, createGrooveBorder, createGrooveBorder, createHorizonalImageBorder, createImageBorder, createImageBorder, createImageScaledBorder, createImageSplicedBorder, createInsetBorder, createInsetBorder, createLineBorder, createLineBorder, createLineBorder, createLineBorder, createLineBorder, createLineBorder, createOutsetBorder, createOutsetBorder, createPressedVersion, createRidgeBorder, createRidgeBorder, createRoundBorder, createRoundBorder, createRoundBorder, createRoundBorder, createUndelineBorder, createUndelineBorder, createUnderlineBorder, createUnderlineBorder, createUnderlineBorder, createUnderlineBorder, createVerticalImageBorder, getCompoundBorders, getDefaultBorder, getEmpty, getFocusedInstance, getPressedInstance, getProperty, getThickness, getTrackComponent, isEmptyBorder, isPaintOuterBorderFirst, isRectangleType, lock, mirrorBorder, paint, setDefaultBorder, setFocusedInstance, setImageBorderSpecialTile, setImageBorderSpecialTile, setPaintOuterBorderFirst, setPressedInstance, setThickness, setTrackComponent, setTrackComponent, unlock`
  Modifier and Type
  Method
  Description
  `void`
  `addOuterBorder(Border outer)`
  Ads a border that wraps this border
  `void`
  `clearImageBorderSpecialTile()`
  Cleans the tile tracking state allowing the garbage collector to pick up the component and the image data
  `static Border`
  `createBevelLowered()`
  Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color
  `static Border`
  `createBevelLowered(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner)`
  Creates a raised bevel border with the given colors
  `static Border`
  `createBevelRaised()`
  Creates a lowered bevel border with default colors, highlight is derived from the component and shadow is a plain dark color
  `static Border`
  `createBevelRaised(int highlightOuter, int highlightInner, int shadowOuter, int shadowInner)`
  Creates a raised bevel border with the given colors
  `static Border`
  `createCompoundBorder(Border top, Border bottom, Border left, Border right)`
  Creates a border that is comprised of multiple border types so one border type can be used on top while another one can be used at the bottom.
  `static Border`
  `createDashedBorder(int thickness)`
  Creates a dashed border with the specified thickness and the theme colors
  `static Border`
  `createDashedBorder(int thickness, int color)`
  Creates a dashed border with the specified thickness and color
  `static Border`
  `createDottedBorder(int thickness)`
  Creates a dotted border with the specified thickness and the theme colors
  `static Border`
  `createDottedBorder(int thickness, int color)`
  Creates a dotted border with the specified thickness and color
  `static Border`
  `createDoubleBorder(int thickness)`
  Creates a double border with the specified thickness and color
  `static Border`
  `createDoubleBorder(int thickness, int color)`
  Creates a double border with the specified thickness and color
  `static Border`
  `createEmpty()`
  Creates an empty border, this is useful where we don't want a border for a component but want a focus border etc...
  `static Border`
  `createEtchedLowered()`
  Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color
  `static Border`
  `createEtchedLowered(int highlight, int shadow)`
  Creates a raised etched border with the given colors
  `static Border`
  `createEtchedRaised()`
  Creates a lowered etched border with default colors, highlight is derived from the component and shadow is a plain dark color
  `static Border`
  `createEtchedRaised(int highlight, int shadow)`
  Creates a raised etched border with the given colors
  `static Border`
  `createGrooveBorder(int thickness)`
  Creates a groove border with the specified thickness and theme colors
  `static Border`
  `createGrooveBorder(int thickness, int color)`
  Creates a groove border with the specified thickness and color
  `static Border`
  `createHorizonalImageBorder(Image left, Image right, Image center)`
  This is an image border that can only grow horizontally
  `static Border`
  `createImageBorder(Image top, Image topLeft, Image background)`
  The given images are tiled appropriately across the matching side of the border, rotated and placed as expected in the four corners.
  `static Border`
  `createImageBorder(Image top, Image bottom, Image left, Image right, Image topLeft, Image topRight, Image bottomLeft, Image bottomRight, Image background)`
  The given top/bottom/left/right images are tiled appropriately across the matching sides of the border and the corners are placed as expected in the four corners.
  `static Border`
  `createImageScaledBorder(Image top, Image bottom, Image left, Image right, Image topLeft, Image topRight, Image bottomLeft, Image bottomRight, Image background)`
  The given top/bottom/left/right images are scaled appropriately across the matching sides of the border and the corners are placed as expected in the four corners.
  `static Border`
  `createImageSplicedBorder(Image img, double topInset, double rightInset, double bottomInset, double leftInset)`
  The given image is spliced into 9 pieces based on the provided top, right, bottom, and left insets, and the resulting sub-images are used to form a 9-piece image border via `com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image, com.codename1.ui.Image)`
  `static Border`
  `createInsetBorder(int thickness)`
  Creates an inset border with the specified thickness and theme colors
  `static Border`
  `createInsetBorder(int thickness, int color)`
  Creates an inset border with the specified thickness and color
  `static Border`
  `createLineBorder(float thickness)`
  Creates a line border that uses the color of the component foreground for drawing
  `static Border`
  `createLineBorder(float thickness, int color)`
  Creates a line border that uses the given color for the component
  `static Border`
  `createLineBorder(int thickness)`
  Creates a line border that uses the color of the component foreground for drawing
  `static Border`
  `createLineBorder(int thickness, int color)`
  Creates a line border that uses the given color for the component
  `static Border`
  `createLineBorder(int thickness, int color, String title)`
  Creates a line border that uses the given color for the component
  `static Border`
  `createLineBorder(int thickness, String title)`
  Creates a line border with the specified title
  `static Border`
  `createOutsetBorder(int thickness)`
  Creates an outset border with the specified thickness and theme colors
  `static Border`
  `createOutsetBorder(int thickness, int color)`
  Creates an outset border with the specified thickness and color
  `Border`
  `createPressedVersion()`
  When applied to buttons borders produce a version that reverses the effects of the border providing a pressed feel
  `static Border`
  `createRidgeBorder(int thickness)`
  Creates a ridge border with the specified thickness and theme colors
  `static Border`
  `createRidgeBorder(int thickness, int color)`
  Creates a ridge border with the specified thickness and color
  `static Border`
  `createRoundBorder(int arcWidth, int arcHeight)`
  Creates a rounded corner border that uses the color of the component foreground for drawing.
  `static Border`
  `createRoundBorder(int arcWidth, int arcHeight, boolean outline)`
  Creates a rounded corner border that uses the color of the component foreground for drawing.
  `static Border`
  `createRoundBorder(int arcWidth, int arcHeight, int color)`
  Creates a rounded border that uses the given color for the component.
  `static Border`
  `createRoundBorder(int arcWidth, int arcHeight, int color, boolean outline)`
  Creates a rounded border that uses the given color for the component.
  `static Border`
  `createUndelineBorder(float thickness)`
  Creates an underline border that uses the color of the component foreground for drawing
  `static Border`
  `createUndelineBorder(int thickness)`
  Creates an underline border that uses the color of the component foreground for drawing
  `static Border`
  `createUnderlineBorder(float thickness)`
  Creates an underline border that uses the color of the component foreground for drawing
  `static Border`
  `createUnderlineBorder(float thickness, int color)`
  Creates an underline border that uses the given color
  `static Border`
  `createUnderlineBorder(int thickness)`
  Creates an underline border that uses the color of the component foreground for drawing
  `static Border`
  `createUnderlineBorder(int thickness, int color)`
  Creates an underline border that uses the given color
  `static Border`
  `createVerticalImageBorder(Image top, Image bottom, Image center)`
  This is an image border that can only grow vertically
  `Border[]`
  `getCompoundBorders()`
  This method returns the Compound Borders array.
  `static Border`
  `getDefaultBorder()`
  Gets the default border to the given value
  `static Border`
  `getEmpty()`
  Returns an empty border, this is mostly useful for overriding components that have a border by default
  `Border`
  `getFocusedInstance()`
  Returns the focused version of the border if one is installed
  `Border`
  `getPressedInstance()`
  Returns the pressed version of the border if one is set by the user
  `Object`
  `getProperty(String n)`
  This method is for internal usage only!
  `int`
  `getThickness()`
  This method returns how thick is the border in pixels, notice this doesn't apply to most border types
  `protected Rectangle`
  `getTrackComponent()`
  The track component is an area to which an arrow based border should point at.
  `boolean`
  `isEmptyBorder()`
  Indicates whether this is an empty border
  `boolean`
  `isPaintOuterBorderFirst()`
  Allows toggling the order in which the outer and inner borders are painted for the Outer border type
  `boolean`
  `isRectangleType()`
  Returns true if this border type is a rectangle border.
  `void`
  `lock()`
  This callback indicates that a component pointing at this border is initialized, this method is useful for image borders whose lock methods are implicitly invoked.
  `Border`
  `mirrorBorder()`
  If a border is a horizontal image border it can be mirrored which is useful for an RTL scenario
  `void`
  `paint(Graphics g, Component c)`
  Draws the border for the given component, this method is called before a call to background painting is made.
  `static void`
  `setDefaultBorder(Border border)`
  Sets the default border to the given value
  `void`
  `setFocusedInstance(Border focused)`
  Allows us to define a border that will act as the focused version of this border
  `void`
  `setImageBorderSpecialTile(Image tileTop, Image tileBottom, Image tileLeft, Image tileRight, Component trackComponent)`
  This method is designed mainly for the purpose of creating an arrow that will track a specific component using the image border the tile given would be an arrow like image just like the ones used for the top/bottom/left/right images.
  `void`
  `setImageBorderSpecialTile(Image tileTop, Image tileBottom, Image tileLeft, Image tileRight, Rectangle trackComponent)`
  This method is designed mainly for the purpose of creating an arrow that will track a specific component using the image border the tile given would be an arrow like image just like the ones used for the top/bottom/left/right images.
  `void`
  `setPaintOuterBorderFirst(boolean paintOuterBorderFirst)`
  Allows toggling the order in which the outer and inner borders are painted for the Outer border type
  `void`
  `setPressedInstance(Border pressed)`
  Allows us to define a border that will act as the pressed version of this border
  `void`
  `setThickness(int thickness)`
  This method returns sets the border thickness in pixels, notice this doesn't apply to most border types
  `void`
  `setTrackComponent(Component trackComponent)`
  In the case of an arrow border the track component lets us track the position to which the border is pointing
  `void`
  `setTrackComponent(Rectangle trackComponent)`
  In the case of an arrow border the track component lets us track the position to which the border is pointing
  `void`
  `unlock()`
  This callback indicates that a component pointing at this border is now deinitilized This method may be invoked multiple times.

  ### Methods inherited from class Object

  `clone, getClass, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  `final Class`
  `getClass()`
  Returns the runtime class of an object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes current thread to wait until another thread invokes the method or the method for this object.
  `final void`
  `wait(long timeout)`
  Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.
  `final void`
  `wait(long timeout, int nanos)`
  Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.

- ## Field Details

  - ### REPEAT_NONE

    public static final byte REPEAT_NONE
    Constant indicating no-repeat for background images.
    See Also:
      - Constant Field Values

  - ### REPEAT_BOTH

    public static final byte REPEAT_BOTH
    Constant indicating repeating on both x and y for background images.
    See Also:
      - Constant Field Values

  - ### REPEAT_X

    public static final byte REPEAT_X
    Constant indicating repeat-x for background images.
    See Also:
      - Constant Field Values

  - ### REPEAT_Y

    public static final byte REPEAT_Y
    Constant indicating repeat-y for background images.
    See Also:
      - Constant Field Values

  - ### VPOSITION_TOP

    public static final byte VPOSITION_TOP
    Constant indicating background-position top.
    See Also:
      - Constant Field Values

  - ### VPOSITION_BOTTOM

    public static final byte VPOSITION_BOTTOM
    Constant indicating background-position bottom.
    See Also:
      - Constant Field Values

  - ### VPOSITION_CENTER

    public static final byte VPOSITION_CENTER
    Constant indicating background-position center.
    See Also:
      - Constant Field Values

  - ### VPOSITION_OTHER

    public static final byte VPOSITION_OTHER
    See Also:
      - Constant Field Values

  - ### HPOSITION_LEFT

    public static final byte HPOSITION_LEFT
    Constant indicating background-position left.
    See Also:
      - Constant Field Values

  - ### HPOSITION_RIGHT

    public static final byte HPOSITION_RIGHT
    Constant indicating background-position right.
    See Also:
      - Constant Field Values

  - ### HPOSITION_CENTER

    public static final byte HPOSITION_CENTER
    Constant indicating background-position center (horizontal).
    See Also:
      - Constant Field Values

  - ### HPOSITION_OTHER

    public static final byte HPOSITION_OTHER
    See Also:
      - Constant Field Values

  - ### SIZE_AUTO

    public static final byte SIZE_AUTO
    See Also:
      - Constant Field Values

  - ### SIZE_CONTAIN

    public static final byte SIZE_CONTAIN
    See Also:
      - Constant Field Values

  - ### SIZE_COVER

    public static final byte SIZE_COVER
    See Also:
      - Constant Field Values

  - ### SIZE_OTHER

    public static final byte SIZE_OTHER
    See Also:
      - Constant Field Values

  - ### STYLE_NONE

    public static final byte STYLE_NONE
    Constant for border-style none
    See Also:
      - Constant Field Values

  - ### STYLE_HIDDEN

    public static final byte STYLE_HIDDEN
    Constant for border-style hidden
    See Also:
      - Constant Field Values

  - ### STYLE_DOTTED

    public static final byte STYLE_DOTTED
    Constant for border-style dotted
    See Also:
      - Constant Field Values

  - ### STYLE_DASHED

    public static final byte STYLE_DASHED
    Constant for border-style dashed
    See Also:
      - Constant Field Values

  - ### STYLE_SOLID

    public static final byte STYLE_SOLID
    Constant for border-style solid
    See Also:
      - Constant Field Values

  - ### UNIT_PIXELS

    public static final byte UNIT_PIXELS
    Constant for unit px
    See Also:
      - Constant Field Values

  - ### UNIT_MM

    public static final byte UNIT_MM
    Constant for unit mm
    See Also:
      - Constant Field Values

  - ### UNIT_PERCENT

    public static final byte UNIT_PERCENT
    Constant for unit %
    See Also:
      - Constant Field Values

  - ### UNIT_EM

    public static final byte UNIT_EM
    Constant for unit em
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### CSSBorder

    public CSSBorder()
    Creates a new empty CSS border.

  - ### CSSBorder

    public CSSBorder(Resources res)

    Creates an empty border.

    ###### Parameters

    - `res`: Theme resource file from which images can be referenced.

  - ### CSSBorder

    public CSSBorder(String css)

    Creates a new CSS border with the provided CSS styles. This currenlty only supports a subset of CSS. The following properties are currently supported:

    - background-color

    - background-image

    - background-position

    - background-repeat

    - border-color

    - border-radius

    - border-stroke

    - border-style

    - border-width

    - border-image

    ###### Parameters

    - `css`: CSS to parse.

    ###### Throws

    - `IllegalArgumentException`: If it fails to parse the style.

  - ### CSSBorder

    public CSSBorder(Resources res, String css)

    Creates a new CSS border with the provided CSS styles. This currenlty only supports a subset of CSS. The following properties are currently supported:

    - background-color

    - background-image

    - background-position

    - background-repeat

    - border-color

    - border-radius

    - border-stroke

    - border-style

    - border-width

    - border-image

    ###### Parameters

    - `res`: Theme resource file from which images can be loaded.

    - `css`: CSS to parse.

    ###### Throws

    - `IllegalArgumentException`: If it fails to parse the style.

- ## Method Details

  - ### equals

    public boolean equals(Object obj)
    Description copied from class: `Border`
    {Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true).}
    Overrides:
      `equals` in class `Border`

  - ### hashCode

    public int hashCode()
    Description copied from class: `Border`
    Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
    Overrides:
      `hashCode` in class `Border`

  - ### toCSSString

    public String toCSSString()

    Converts this border to a CSS string.

    ###### Returns

    CSS string for this border.

  - ### isBackgroundPainter

    public boolean isBackgroundPainter()

    Returns true if installing this border will override the painting of the component background

    ###### Returns

    true if this border replaces the painter

    Overrides:
      `isBackgroundPainter` in class `Border`

  - ### paintBorderBackground

    public void paintBorderBackground(Graphics g, Component c)

    Has effect when the border demands responsibility for background painting normally the painter will perform this work but in this case the border might do it instead.

    ###### Parameters

    - `g`: graphics context to draw onto

    - `c`: component whose border should be drawn

    Overrides:
      `paintBorderBackground` in class `Border`

  - ### getMinimumHeight

    public int getMinimumHeight()

    Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right

    ###### Returns

    0 if not applicable or a dimension if it is.

    Overrides:
      `getMinimumHeight` in class `Border`

  - ### getMinimumWidth

    public int getMinimumWidth()

    Returns the minimum size required to properly display this border, normally this is 0 but a border might deem itself undisplayable with too small a size e.g. for the case of an image border the minimum height would be top + bottom and the minimum width would be left+right

    ###### Returns

    0 if not applicable or a dimension if it is.

    Overrides:
      `getMinimumWidth` in class `Border`

  - ### borderImage

    public CSSBorder borderImage(Image borderImage, double... slicePoints)

    Creates a 9-piece image border.

    Insets are all given in a (u,v) coordinate space where (0,0) is the top-left corner of the image, and (1.0, 1.0) is the bottom-right corner of the image.

    If a border image is set for the CSS border, it will override all other border types, and will result in only the 9-piece border being rendered.

    ###### Parameters

    - `borderImage`: The border image.

    - `slicePoints`: @param slicePoints The slice points. Accepts 1 - 4 values:

    - 1 value = all sides

    - 2 values = vertical horizontal

    - 3 values = top horizontal bottom

    - 4 values = top right bottom left

    ###### Returns

    Self for chaining.

    ###### Since

    7.0

    ###### See also

    - #borderImageWithName(java.lang.String, double...)

  - ### borderImageWithName

    public CSSBorder borderImageWithName(String borderImageName, double... slicePoints)

    Adds a 9-piece image border using the provided image name, which should exist in the theme resource file.

    Insets are all given in a (u,v) coordinate space where (0,0) is the top-left corner of the image, and (1.0, 1.0) is the bottom-right corner of the image.

    If a border image is set for the CSS border, it will override all other border types, and will result in only the 9-piece border being rendered.

    ###### Parameters

    - `borderImageName`: The image name.

    - `slicePoints`: @param slicePoints The slice points. Accepts 1 - 4 values:

    - 1 value = all sides

    - 2 values = vertical horizontal

    - 3 values = top horizontal bottom

    - 4 values = top right bottom left

    ###### Returns

    Self for chaining.

    ###### Since

    7.0

    ###### See also

    - #borderImage(com.codename1.ui.Image, double...)

  - ### boxShadow

    public CSSBorder boxShadow(String value)

  - ### borderRadius

    public CSSBorder borderRadius(String radius)

    Sets the border radius for rounded corners.

    ###### Parameters

    - `radius`

  - ### borderStroke

    public CSSBorder borderStroke(String... strokeStrs)

    Sets the border stroke.

    ###### Parameters

    - `strokeStrs`

  - ### borderColor

    public CSSBorder borderColor(String... colors)

    Sets the border colors.

    ###### Parameters

    - `colors`: The colors. 1 value sets all borders. 2 sets top/bottom, left/right. 3 sets top, left/right, bottom. 4 sets top, right, bottom, left.

    ###### Returns

    Self for chaining.

  - ### borderWidth

    public CSSBorder borderWidth(String... widths)

    Sets the border widths.

    ###### Parameters

    - `widths`: The widths. 1 value sets all borders. 2 sets top/bottom, left/right. 3 sets top, left/right, bottom. 4 sets top, right, bottom, left.

    ###### Returns

    Self for chaining.

  - ### borderStyle

    public CSSBorder borderStyle(String... styles)

    Sets the border styles. Supported styles: none, hidden, dotted, dashed, solid.

    ###### Parameters

    - `styles`: The border styles. 1 value sets all borders. 2 sets top/bottom, left/right. 3 sets top, left/right, bottom. 4 sets top, right, bottom, left.

    ###### Returns

    Self for chaining.

  - ### backgroundColor

    public CSSBorder backgroundColor(String color)

    Sets the background color of the border.

    ###### Parameters

    - `color`: A color string.

    ###### Returns

    Self for chaining.

  - ### backgroundImage

    public CSSBorder backgroundImage(String cssDirective)

    Adds one or more background images from a CSS background-image property.

    ###### Parameters

    - `cssDirective`: The value of the background-image property.

    ###### Returns

    Self for chaining.

  - ### backgroundImage

    public CSSBorder backgroundImage(Image... images)

    Sets the background image of the border.

    ###### Parameters

    - `images`: Images to use as background images.

    ###### Returns

    Self for chaining.

  - ### backgroundRepeat

    public CSSBorder backgroundRepeat(String... repeat)

    Sets the background-repeat for the background images.

    ###### Parameters

    - `repeat`: Repeat options for respective background images.

    ###### Returns

    Self for chaining.

  - ### backgroundPosition

    public CSSBorder backgroundPosition(String... pos)

    Sets the background position.

    ###### Parameters

    - `pos`: The background positions of background images.

    ###### Returns

    Self for chaining.