Class XYPointerAnnotation

All Implemented Interfaces:
Serializable, Cloneable, XYAnnotation

public class XYPointerAnnotation
extends XYTextAnnotation
implements XYAnnotation, Cloneable, Serializable
An arrow and label that can be placed on an XYPlot. The arrow is drawn at a user-definable angle so that it points towards the (x, y) location for the annotation.

The arrow length (and its offset from the (x, y) location) is controlled by the tip radius and the base radius attributes. Imagine two circles around the (x, y) coordinate: the inner circle defined by the tip radius, and the outer circle defined by the base radius. Now, draw the arrow starting at some point on the outer circle (the point is determined by the angle), with the arrow tip being drawn at a corresponding point on the inner circle.

See the MarkerDemo1.java source file in the JFreeChart distribution for an example.

See Also:
Serialized Form
  • Field Details

    • DEFAULT_TIP_RADIUS

      public static final double DEFAULT_TIP_RADIUS
      The default tip radius (in Java2D units).
      See Also:
      Constant Field Values
    • DEFAULT_BASE_RADIUS

      public static final double DEFAULT_BASE_RADIUS
      The default base radius (in Java2D units).
      See Also:
      Constant Field Values
    • DEFAULT_LABEL_OFFSET

      public static final double DEFAULT_LABEL_OFFSET
      The default label offset (in Java2D units).
      See Also:
      Constant Field Values
    • DEFAULT_ARROW_LENGTH

      public static final double DEFAULT_ARROW_LENGTH
      The default arrow length (in Java2D units).
      See Also:
      Constant Field Values
    • DEFAULT_ARROW_WIDTH

      public static final double DEFAULT_ARROW_WIDTH
      The default arrow width (in Java2D units).
      See Also:
      Constant Field Values
  • Constructor Details

    • XYPointerAnnotation

      public XYPointerAnnotation​(String label, double x, double y, double angle)
      Creates a new label and arrow annotation.
      Parameters:
      label - the label.
      x - the x-coordinate (measured against the chart's domain axis).
      y - the y-coordinate (measured against the chart's range axis).
      angle - the angle of the arrow's line (in radians).
  • Method Details

    • getAngle

      public double getAngle()
      Returns the angle of the arrow.
      Returns:
      The angle.
    • setAngle

      public void setAngle​(double angle)
      Sets the angle.
      Parameters:
      angle - the angle.
    • getTipRadius

      public double getTipRadius()
      Returns the tip radius.
      Returns:
      The tip radius.
    • setTipRadius

      public void setTipRadius​(double radius)
      Sets the tip radius.
      Parameters:
      radius - the radius.
    • getBaseRadius

      public double getBaseRadius()
      Sets the base radius.
      Returns:
      The base radius.
    • setBaseRadius

      public void setBaseRadius​(double radius)
      Sets the base radius.
      Parameters:
      radius - The radius.
    • getLabelOffset

      public double getLabelOffset()
      Sets the label offset.
      Returns:
      The label offset.
    • setLabelOffset

      public void setLabelOffset​(double offset)
      Sets the label offset (from the arrow base, continuing in a straight line, in Java2D units).
      Parameters:
      offset - the offset.
    • getArrowLength

      public double getArrowLength()
      Returns the arrow length.
      Returns:
      The arrow length.
    • setArrowLength

      public void setArrowLength​(double length)
      Sets the arrow length.
      Parameters:
      length - the length.
    • getArrowWidth

      public double getArrowWidth()
      Returns the arrow width.
      Returns:
      The arrow width.
    • setArrowWidth

      public void setArrowWidth​(double width)
      Sets the arrow width.
      Parameters:
      width - the width.
    • getArrowStroke

      public Stroke getArrowStroke()
      Returns the stroke used to draw the arrow line.
      Returns:
      The arrow stroke.
    • setArrowStroke

      public void setArrowStroke​(Stroke stroke)
      Sets the stroke used to draw the arrow line.
      Parameters:
      stroke - the stroke.
    • getArrowPaint

      public Paint getArrowPaint()
      Sets the paint used for the arrow.
      Returns:
      The arrow paint.
    • setArrowPaint

      public void setArrowPaint​(Paint paint)
      Sets the paint used for the arrow.
      Parameters:
      paint - the arrow paint.
    • draw

      public void draw​(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis)
      Draws the annotation.
      Specified by:
      draw in interface XYAnnotation
      Overrides:
      draw in class XYTextAnnotation
      Parameters:
      g2 - the graphics device.
      plot - the plot.
      dataArea - the data area.
      domainAxis - the domain axis.
      rangeAxis - the range axis.
    • equals

      public boolean equals​(Object object)
      Tests this annotation for equality with an object.
      Overrides:
      equals in class TextAnnotation
      Parameters:
      object - the object to test against.
      Returns:
      true or false.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of the annotation.
      Overrides:
      clone in class XYTextAnnotation
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if the annotation can't be cloned.