org.jfree.chart.annotations

Class XYPointerAnnotation

Implemented Interfaces:
Cloneable, PublicCloneable, Serializable, XYAnnotation

public class XYPointerAnnotation
extends XYTextAnnotation
implements Cloneable, PublicCloneable, 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.

Field Summary

static double
DEFAULT_ARROW_LENGTH
The default arrow length (in Java2D units).
static double
DEFAULT_ARROW_WIDTH
The default arrow width (in Java2D units).
static double
DEFAULT_BASE_RADIUS
The default base radius (in Java2D units).
static double
DEFAULT_LABEL_OFFSET
The default label offset (in Java2D units).
static double
DEFAULT_TIP_RADIUS
The default tip radius (in Java2D units).

Fields inherited from class org.jfree.chart.annotations.XYTextAnnotation

DEFAULT_FONT, DEFAULT_PAINT, DEFAULT_ROTATION_ANCHOR, DEFAULT_ROTATION_ANGLE, DEFAULT_TEXT_ANCHOR

Constructor Summary

XYPointerAnnotation(String label, double x, double y, double angle)
Creates a new label and arrow annotation.

Method Summary

Object
clone()
Returns a clone of the annotation.
void
draw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info)
Draws the annotation.
boolean
equals(Object obj)
Tests this annotation for equality with an arbitrary object.
double
getAngle()
Returns the angle of the arrow.
double
getArrowLength()
Returns the arrow length.
Paint
getArrowPaint()
Returns the paint used for the arrow.
Stroke
getArrowStroke()
Returns the stroke used to draw the arrow line.
double
getArrowWidth()
Returns the arrow width.
double
getBaseRadius()
Returns the base radius.
double
getLabelOffset()
Returns the label offset.
double
getTipRadius()
Returns the tip radius.
int
hashCode()
Returns a hash code for this instance.
void
setAngle(double angle)
Sets the angle of the arrow.
void
setArrowLength(double length)
Sets the arrow length.
void
setArrowPaint(Paint paint)
Sets the paint used for the arrow.
void
setArrowStroke(Stroke stroke)
Sets the stroke used to draw the arrow line.
void
setArrowWidth(double width)
Sets the arrow width.
void
setBaseRadius(double radius)
Sets the base radius.
void
setLabelOffset(double offset)
Sets the label offset (from the arrow base, continuing in a straight line, in Java2D units).
void
setTipRadius(double radius)
Sets the tip radius.

Methods inherited from class org.jfree.chart.annotations.XYTextAnnotation

clone, draw, equals, getFont, getPaint, getRotationAnchor, getRotationAngle, getText, getTextAnchor, getX, getY, hashCode, setFont, setPaint, setRotationAnchor, setRotationAngle, setText, setTextAnchor, setX, setY

Methods inherited from class org.jfree.chart.annotations.AbstractXYAnnotation

addEntity, draw, equals, getToolTipText, getURL, hashCode, setToolTipText, setURL

Field Details

DEFAULT_ARROW_LENGTH

public static final double DEFAULT_ARROW_LENGTH
The default arrow length (in Java2D units).
Field Value:
5.0

DEFAULT_ARROW_WIDTH

public static final double DEFAULT_ARROW_WIDTH
The default arrow width (in Java2D units).
Field Value:
3.0

DEFAULT_BASE_RADIUS

public static final double DEFAULT_BASE_RADIUS
The default base radius (in Java2D units).
Field Value:
30.0

DEFAULT_LABEL_OFFSET

public static final double DEFAULT_LABEL_OFFSET
The default label offset (in Java2D units).
Field Value:
3.0

DEFAULT_TIP_RADIUS

public static final double DEFAULT_TIP_RADIUS
The default tip radius (in Java2D units).
Field Value:
10.0

Constructor Details

XYPointerAnnotation

public XYPointerAnnotation(String label,
                           double x,
                           double y,
                           double angle)
Creates a new label and arrow annotation.
Parameters:
label - the label (null permitted).
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

clone

public Object clone()
            throws CloneNotSupportedException
Returns a clone of the annotation.
Overrides:
clone in interface XYTextAnnotation
Returns:
A clone.

draw

public void draw(Graphics2D g2,
                 XYPlot plot,
                 Rectangle2D dataArea,
                 ValueAxis domainAxis,
                 ValueAxis rangeAxis,
                 int rendererIndex,
                 PlotRenderingInfo info)
Draws the annotation.
Specified by:
draw in interface XYAnnotation
Overrides:
draw in interface XYTextAnnotation
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(Object obj)
Tests this annotation for equality with an arbitrary object.
Overrides:
equals in interface XYTextAnnotation
Parameters:
obj - the object (null permitted).
Returns:
true or false.

getAngle

public double getAngle()
Returns the angle of the arrow.
Returns:
The angle (in radians).

getArrowLength

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

getArrowPaint

public Paint getArrowPaint()
Returns the paint used for the arrow.
Returns:
The arrow paint (never null).

getArrowStroke

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

getArrowWidth

public double getArrowWidth()
Returns the arrow width.
Returns:
The arrow width (in Java2D units).

getBaseRadius

public double getBaseRadius()
Returns the base radius.
Returns:
The base radius (in Java2D units).

getLabelOffset

public double getLabelOffset()
Returns the label offset.
Returns:
The label offset (in Java2D units).

getTipRadius

public double getTipRadius()
Returns the tip radius.
Returns:
The tip radius (in Java2D units).

hashCode

public int hashCode()
Returns a hash code for this instance.
Overrides:
hashCode in interface XYTextAnnotation
Returns:
A hash code.

setAngle

public void setAngle(double angle)
Sets the angle of the arrow.
Parameters:
angle - the angle (in radians).
See Also:
getAngle()

setArrowLength

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

setArrowPaint

public void setArrowPaint(Paint paint)
Sets the paint used for the arrow.
Parameters:
paint - the arrow paint (null not permitted).

setArrowStroke

public void setArrowStroke(Stroke stroke)
Sets the stroke used to draw the arrow line.
Parameters:
stroke - the stroke (null not permitted).

setArrowWidth

public void setArrowWidth(double width)
Sets the arrow width.
Parameters:
width - the width (in Java2D units).

setBaseRadius

public void setBaseRadius(double radius)
Sets the base radius.
Parameters:
radius - the radius (in Java2D units).

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 (in Java2D units).

setTipRadius

public void setTipRadius(double radius)
Sets the tip radius.
Parameters:
radius - the radius (in Java2D units).