# Class Stroke

java.lang.Object
com.codename1.ui.Stroke

public class Stroke extends Object
Encapsulates the stroke used for drawing paths.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CAP_BUTT`
  Cap style constant to cap strokes with a butt (or flat).
  `static final int`
  `CAP_ROUND`
  Cap style constant to cap strokes with a round end.
  `static final int`
  `CAP_SQUARE`
  Cap style constant to cap strokes with a square end.
  `static final int`
  `JOIN_BEVEL`
  Join style constant to join strokes bevel.
  `static final int`
  `JOIN_MITER`
  Join style constant to join strokes MITER (i.e. pointy) Examples can be seen at here.
  `static final int`
  `JOIN_ROUND`
  Join style constant to join strokes rounded.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Stroke()`
  Creates a stroke with default settings.
  `Stroke(float lineWidth, int capStyle, int joinStyle, float miterLimit)`
  Creates a stroke with the specified characteristics.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `int`
  `getCapStyle()`
  Gets the cap style of the stroke.
  `int`
  `getJoinStyle()`
  Returns the join style used for this stroke.
  `float`
  `getLineWidth()`
  Returns the line width of the stroke.
  `float`
  `getMiterLimit()`
  Gets the miter limit of the stroke.
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `void`
  `setCapStyle(int capStyle)`
  Gets the cap style of the stroke.
  `void`
  `setJoinStyle(int joinStyle)`
  Sets the join style of the stroke.
  `void`
  `setLineWidth(float lineWidth)`
  Sets the line width of the stroke.
  `void`
  `setMiterLimit(float miterLimit)`
  Sets the miter limit of the stroke.
  `void`
  `setStroke(Stroke stroke)`
  Copies the properties of `stroke` into this stroke.
  `String`
  `toString()`
  Returns a string representation of the object.

  ### Methods inherited from class Object

  `clone, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### JOIN_MITER

    public static final int JOIN_MITER

    Join style constant to join strokes MITER (i.e. pointy) Examples can be seen at here.

    ###### See also

    - #setJoinStyle

    - #getJoinStyle

    See Also:
      - Constant Field Values

  - ### JOIN_ROUND

    public static final int JOIN_ROUND

    Join style constant to join strokes rounded. Examples can be seen here.

    ###### See also

    - #setJoinStyle

    - #getJoinStyle

    See Also:
      - Constant Field Values

  - ### JOIN_BEVEL

    public static final int JOIN_BEVEL

    Join style constant to join strokes bevel. Examples can be seen here.

    ###### See also

    - #setJoinStyle

    - #getJoinStyle

    See Also:
      - Constant Field Values

  - ### CAP_BUTT

    public static final int CAP_BUTT

    Cap style constant to cap strokes with a butt (or flat). Examples can be seen here.

    ###### See also

    - #setCapStyle

    - #getCapStyle

    See Also:
      - Constant Field Values

  - ### CAP_ROUND

    public static final int CAP_ROUND

    Cap style constant to cap strokes with a round end. Examples can be seen here

    ###### See also

    - #setCapStyle

    - #getCapStyle

    See Also:
      - Constant Field Values

  - ### CAP_SQUARE

    public static final int CAP_SQUARE

    Cap style constant to cap strokes with a square end. Examples can be seen here

    ###### See also

    - #setCapStyle

    - #getCapStyle

    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Stroke

    public Stroke(float lineWidth, int capStyle, int joinStyle, float miterLimit)

    Creates a stroke with the specified characteristics.

    ###### Parameters

    - `lineWidth`: The width of the stroke pixels.

    - `capStyle`: The cap style of the stroke. Should be one of `#CAP_BUTT`, `#CAP_ROUND`, or `#CAP_SQUARE`.

    - `joinStyle`: The join style of the strokes. Should be one of `#JOIN_MITER`, `#JOIN_ROUND`, or `#JOIN_BEVEL`.

    - `miterLimit`: The Miter limit controls the point at which a Miter join automatically is converted to a Bevel join. If the distance from the inner intersection point to the tip of the triangle measured in stroke widths is more than the Miter limit, the join will be drawn in the Bevel style.

  - ### Stroke

    public Stroke()

    Creates a stroke with default settings. Default settings are:

    Join style`#JOIN_MITER` Cap style`#CAP_BUTT` Line Width1.0 Miter Limit4.0

- ## Method Details

  - ### setStroke

    public void setStroke(Stroke stroke)

    Copies the properties of `stroke` into this stroke.

    ###### Parameters

    - `stroke`: The stroke whose properties we wish to copy into the current stroke.

  - ### getJoinStyle

    public int getJoinStyle()

    Returns the join style used for this stroke. See visual examples of join styles here.

    ###### Returns

    Returns:

      the joinStyle This will be one of `#JOIN_MITER`, `#JOIN_ROUND`, and `#JOIN_BEVEL`.

      ###### See also

      - #JOIN_MITER

      - #JOIN_BEVEL

      - #JOIN_ROUND

  - ### setJoinStyle

    public void setJoinStyle(int joinStyle)

    Sets the join style of the stroke. See visual examples of join styles here.

    ###### Parameters

    - `joinStyle`: @param joinStyle the joinStyle to set. This should be one of `#JOIN_MITER`, `#JOIN_ROUND`, and `#JOIN_BEVEL`.

    ###### See also

    - #JOIN_MITER

    - #JOIN_BEVEL

    - #JOIN_ROUND

  - ### getCapStyle

    public int getCapStyle()

    Gets the cap style of the stroke. See visual examples of cap styles here.

    ###### Returns

    the capStyle. This will be one of `#CAP_BUTT`, `#CAP_ROUND`, and `#CAP_SQUARE`.

    ###### See also

    - #CAP_BUTT

    - #CAP_SQUARE

    - #CAP_ROUND

  - ### setCapStyle

    public void setCapStyle(int capStyle)

    Gets the cap style of the stroke. See visual examples of cap styles here.

    ###### Parameters

    - `capStyle`: the capStyle to set. This will be one of `#CAP_BUTT`, `#CAP_ROUND`, and `#CAP_SQUARE`.

    ###### See also

    - #CAP_BUTT

    - #CAP_SQUARE

    - #CAP_ROUND

  - ### getLineWidth

    public float getLineWidth()

    Returns the line width of the stroke.

    ###### Returns

    the lineWidth

  - ### setLineWidth

    public void setLineWidth(float lineWidth)

    Sets the line width of the stroke.

    ###### Parameters

    - `lineWidth`: the lineWidth to set

  - ### getMiterLimit

    public float getMiterLimit()

    Gets the miter limit of the stroke. The Miter limit controls the point at which a Miter join automatically is converted to a Bevel join. If the distance from the inner intersection point to the tip of the triangle measured in stroke widths is more than the Miter limit, the join will be drawn in the Bevel style.

    ###### Returns

    the miterLimit

  - ### setMiterLimit

    public void setMiterLimit(float miterLimit)

    Sets the miter limit of the stroke. The Miter limit controls the point at which a Miter join automatically is converted to a Bevel join. If the distance from the inner intersection point to the tip of the triangle measured in stroke widths is more than the Miter limit, the join will be drawn in the Bevel style.

    ###### Parameters

    - `miterLimit`: the miterLimit to set

  - ### equals

    public boolean equals(Object obj)
    Description copied from class: `Object`
    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 `Object`

  - ### toString

    public String toString()
    Description copied from class: `Object`
    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
    Overrides:
      `toString` in class `Object`

  - ### hashCode

    public int hashCode()
    Description copied from class: `Object`
    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 `Object`