## org.jfree.chart.annotations
Class XYPolygonAnnotation

    java.lang.Object
      org.jfree.chart.annotations.AbstractXYAnnotation
          org.jfree.chart.annotations.XYPolygonAnnotation

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, XYAnnotation, org.jfree.util.PublicCloneable

    public class XYPolygonAnnotation

extends AbstractXYAnnotation
implements java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A polygon annotation that can be placed on an `XYPlot`. The polygon coordinates are specified in data space.

See Also:
  Serialized Form

Constructor Summary
`XYPolygonAnnotation(double[] polygon)` Creates a new annotation (where, by default, the polygon is drawn with a black outline).
`XYPolygonAnnotation(double[] polygon, java.awt.Stroke stroke, java.awt.Paint outlinePaint)` Creates a new annotation where the box is drawn as an outline using the specified `stroke` and `outlinePaint`.
`XYPolygonAnnotation(double[] polygon, java.awt.Stroke stroke, java.awt.Paint outlinePaint, java.awt.Paint fillPaint)` Creates a new annotation.

Method Summary
`java.lang.Object` `clone()` Returns a clone.
`void` `draw(java.awt.Graphics2D g2, XYPlot plot, java.awt.geom.Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info)` Draws the annotation.
`boolean` `equals(java.lang.Object obj)` Tests this annotation for equality with an arbitrary object.
`java.awt.Paint` `getFillPaint()` Returns the fill paint.
`java.awt.Paint` `getOutlinePaint()` Returns the outline paint.
`java.awt.Stroke` `getOutlineStroke()` Returns the outline stroke.
`double[]` `getPolygonCoordinates()` Returns the coordinates of the polygon's vertices.
`int` `hashCode()` Returns a hash code for this instance.

Methods inherited from class org.jfree.chart.annotations.AbstractXYAnnotation
`addEntity, getToolTipText, getURL, setToolTipText, setURL`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### XYPolygonAnnotation

    public XYPolygonAnnotation(double[] polygon)

  Creates a new annotation (where, by default, the polygon is drawn with a black outline). The array of polygon coordinates must contain an even number of coordinates (each pair is an (x, y) location on the plot) and the last point is automatically joined back to the first point.

  Parameters:
    `polygon` - the coordinates of the polygon's vertices (`null` not permitted).

### XYPolygonAnnotation

    public XYPolygonAnnotation(double[] polygon,
                               java.awt.Stroke stroke,
                               java.awt.Paint outlinePaint)

  Creates a new annotation where the box is drawn as an outline using the specified `stroke` and `outlinePaint`. The array of polygon coordinates must contain an even number of coordinates (each pair is an (x, y) location on the plot) and the last point is automatically joined back to the first point.

  Parameters:
    `polygon` - the coordinates of the polygon's vertices (`null` not permitted).
    `stroke` - the shape stroke (`null` permitted).
    `outlinePaint` - the shape color (`null` permitted).

### XYPolygonAnnotation

    public XYPolygonAnnotation(double[] polygon,
                               java.awt.Stroke stroke,
                               java.awt.Paint outlinePaint,
                               java.awt.Paint fillPaint)

  Creates a new annotation. The array of polygon coordinates must contain an even number of coordinates (each pair is an (x, y) location on the plot) and the last point is automatically joined back to the first point.

  Parameters:
    `polygon` - the coordinates of the polygon's vertices (`null` not permitted).
    `stroke` - the shape stroke (`null` permitted).
    `outlinePaint` - the shape color (`null` permitted).
    `fillPaint` - the paint used to fill the shape (`null` permitted).

Method Detail

### getPolygonCoordinates

    public double[] getPolygonCoordinates()

  Returns the coordinates of the polygon's vertices. The returned array is a copy, so it is safe to modify without altering the annotation's state.

  Returns:
    The coordinates of the polygon's vertices.
  Since:
    1.0.2

### getFillPaint

    public java.awt.Paint getFillPaint()

  Returns the fill paint.

  Returns:
    The fill paint (possibly `null`).
  Since:
    1.0.2

### getOutlineStroke

    public java.awt.Stroke getOutlineStroke()

  Returns the outline stroke.

  Returns:
    The outline stroke (possibly `null`).
  Since:
    1.0.2

### getOutlinePaint

    public java.awt.Paint getOutlinePaint()

  Returns the outline paint.

  Returns:
    The outline paint (possibly `null`).
  Since:
    1.0.2

### draw

    public void draw(java.awt.Graphics2D g2,
                     XYPlot plot,
                     java.awt.geom.Rectangle2D dataArea,
                     ValueAxis domainAxis,
                     ValueAxis rangeAxis,
                     int rendererIndex,
                     PlotRenderingInfo info)

  Draws the annotation. This method is usually called by the `XYPlot` class, you shouldn't need to call it directly.

  Specified by:
    `draw` in interface `XYAnnotation`
  Specified by:
    `draw` in class `AbstractXYAnnotation`
  Parameters:
    `g2` - the graphics device.
    `plot` - the plot.
    `dataArea` - the data area.
    `domainAxis` - the domain axis.
    `rangeAxis` - the range axis.
    `rendererIndex` - the renderer index.
    `info` - the plot rendering info.

### equals

    public boolean equals(java.lang.Object obj)

  Tests this annotation for equality with an arbitrary object.

  Overrides:
    `equals` in class `AbstractXYAnnotation`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    A boolean.

### hashCode

    public int hashCode()

  Returns a hash code for this instance.

  Overrides:
    `hashCode` in class `AbstractXYAnnotation`
  Returns:
    A hash code.

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Returns a clone.

  Specified by:
    `clone` in interface `org.jfree.util.PublicCloneable`
  Overrides:
    `clone` in class `java.lang.Object`
  Returns:
    A clone.
  Throws:
    `java.lang.CloneNotSupportedException` - not thrown by this class, but may be by subclasses.