## org.jfree.chart.annotations
Class XYDrawableAnnotation

    java.lang.Object
      org.jfree.chart.annotations.AbstractAnnotation
          org.jfree.chart.annotations.AbstractXYAnnotation
              org.jfree.chart.annotations.XYDrawableAnnotation

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

    public class XYDrawableAnnotation

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

A general annotation that can be placed on an `XYPlot`.

See Also:
  Serialized Form

Constructor Summary
`XYDrawableAnnotation(double x, double y, double displayWidth, double displayHeight, double drawScaleFactor, org.jfree.ui.Drawable drawable)` Creates a new annotation to be displayed within the given area.
`XYDrawableAnnotation(double x, double y, double width, double height, org.jfree.ui.Drawable drawable)` Creates a new annotation to be displayed within the given area.

Method Summary
`java.lang.Object` `clone()` Returns a clone of the annotation.
`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.
`int` `hashCode()` Returns a hash code.

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

Methods inherited from class org.jfree.chart.annotations.AbstractAnnotation
`addChangeListener, fireAnnotationChanged, getNotify, hasListener, notifyListeners, removeChangeListener, setNotify`

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

Methods inherited from interface org.jfree.chart.annotations.Annotation
`addChangeListener, removeChangeListener`

Constructor Detail

### XYDrawableAnnotation

    public XYDrawableAnnotation(double x,
                                double y,
                                double width,
                                double height,
                                org.jfree.ui.Drawable drawable)

  Creates a new annotation to be displayed within the given area.

  Parameters:
    `x` - the x-coordinate for the area.
    `y` - the y-coordinate for the area.
    `width` - the width of the area.
    `height` - the height of the area.
    `drawable` - the drawable object (`null` not permitted).

### XYDrawableAnnotation

    public XYDrawableAnnotation(double x,
                                double y,
                                double displayWidth,
                                double displayHeight,
                                double drawScaleFactor,
                                org.jfree.ui.Drawable drawable)

  Creates a new annotation to be displayed within the given area. If you specify a `drawScaleFactor` of 2.0, the `drawable` will be drawn at twice the requested display size then scaled down to fit the space.

  Parameters:
    `x` - the x-coordinate for the area.
    `y` - the y-coordinate for the area.
    `displayWidth` - the width of the area.
    `displayHeight` - the height of the area.
    `drawScaleFactor` - the scaling factor for drawing.
    `drawable` - the drawable object (`null` not permitted).
  Since:
    1.0.11

Method Detail

### 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.

  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` - if supplied, this info object will be populated with entity information.

### 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 to test against.
  Returns:
    `true` or `false`.

### hashCode

    public int hashCode()

  Returns a hash code.

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

### clone

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

  Returns a clone of the annotation.

  Specified by:
    `clone` in interface `org.jfree.util.PublicCloneable`
  Overrides:
    `clone` in class `AbstractAnnotation`
  Returns:
    A clone.
  Throws:
    `java.lang.CloneNotSupportedException` - if the annotation can't be cloned.