Package org.jfree.chart.annotations
Class XYPointerAnnotation
java.lang.Object
org.jfree.chart.annotations.AbstractAnnotation
org.jfree.chart.annotations.AbstractXYAnnotation
org.jfree.chart.annotations.XYTextAnnotation
org.jfree.chart.annotations.XYPointerAnnotation
- All Implemented Interfaces:
Serializable,Cloneable,Annotation,XYAnnotation,PublicCloneable
- Direct Known Subclasses:
XYInversePointerAnnotation
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.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleThe default arrow length (in Java2D units).static final doubleThe default arrow width (in Java2D units).static final doubleThe default base radius (in Java2D units).static final doubleThe default label offset (in Java2D units).static final doubleThe 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
ConstructorsConstructorDescriptionXYPointerAnnotation(String label, double x, double y, double angle) Creates a new label and arrow annotation. -
Method Summary
Modifier and TypeMethodDescriptionbooleanEnsures symmetry between super/subclass implementations of equals.clone()Returns a clone of the annotation.voiddraw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info) Draws the annotation.booleanTests this annotation for equality with an arbitrary object.doublegetAngle()Returns the angle of the arrow.doubleReturns the arrow length.Returns the paint used for the arrow.Returns the stroke used to draw the arrow line.doubleReturns the arrow width.doubleReturns the base radius.doubleReturns the label offset.doubleReturns the tip radius.inthashCode()Returns a hash code for this instance.voidsetAngle(double angle) Sets the angle of the arrow and sends anAnnotationChangeEventto all registered listeners.voidsetArrowLength(double length) Sets the arrow length and sends anAnnotationChangeEventto all registered listeners.voidsetArrowPaint(Paint paint) Sets the paint used for the arrow and sends anAnnotationChangeEventto all registered listeners.voidsetArrowStroke(Stroke stroke) Sets the stroke used to draw the arrow line and sends anAnnotationChangeEventto all registered listeners.voidsetArrowWidth(double width) Sets the arrow width and sends anAnnotationChangeEventto all registered listeners.voidsetBaseRadius(double radius) Sets the base radius and sends anAnnotationChangeEventto all registered listeners.voidsetLabelOffset(double offset) Sets the label offset (from the arrow base, continuing in a straight line, in Java2D units) and sends anAnnotationChangeEventto all registered listeners.voidsetTipRadius(double radius) Sets the tip radius and sends anAnnotationChangeEventto all registered listeners.Methods inherited from class org.jfree.chart.annotations.XYTextAnnotation
getBackgroundPaint, getFont, getOutlinePaint, getOutlineStroke, getPaint, getRotationAnchor, getRotationAngle, getText, getTextAnchor, getX, getY, isOutlineVisible, setBackgroundPaint, setFont, setOutlinePaint, setOutlineStroke, setOutlineVisible, setPaint, setRotationAnchor, setRotationAngle, setText, setTextAnchor, setX, setYMethods inherited from class org.jfree.chart.annotations.AbstractXYAnnotation
addEntity, getToolTipText, getURL, setToolTipText, setURLMethods inherited from class org.jfree.chart.annotations.AbstractAnnotation
addChangeListener, fireAnnotationChanged, getNotify, hasListener, notifyListeners, removeChangeListener, setNotifyMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jfree.chart.annotations.Annotation
addChangeListener, removeChangeListener
-
Field Details
-
DEFAULT_TIP_RADIUS
The default tip radius (in Java2D units).- See Also:
-
DEFAULT_BASE_RADIUS
The default base radius (in Java2D units).- See Also:
-
DEFAULT_LABEL_OFFSET
The default label offset (in Java2D units).- See Also:
-
DEFAULT_ARROW_LENGTH
The default arrow length (in Java2D units).- See Also:
-
DEFAULT_ARROW_WIDTH
The default arrow width (in Java2D units).- See Also:
-
-
Constructor Details
-
XYPointerAnnotation
Creates a new label and arrow annotation.- Parameters:
label- the label (nullpermitted).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
Returns the angle of the arrow.- Returns:
- The angle (in radians).
- See Also:
-
setAngle
Sets the angle of the arrow and sends anAnnotationChangeEventto all registered listeners.- Parameters:
angle- the angle (in radians).- See Also:
-
getTipRadius
Returns the tip radius.- Returns:
- The tip radius (in Java2D units).
- See Also:
-
setTipRadius
Sets the tip radius and sends anAnnotationChangeEventto all registered listeners.- Parameters:
radius- the radius (in Java2D units).- See Also:
-
getBaseRadius
Returns the base radius.- Returns:
- The base radius (in Java2D units).
- See Also:
-
setBaseRadius
Sets the base radius and sends anAnnotationChangeEventto all registered listeners.- Parameters:
radius- the radius (in Java2D units).- See Also:
-
getLabelOffset
Returns the label offset.- Returns:
- The label offset (in Java2D units).
- See Also:
-
setLabelOffset
Sets the label offset (from the arrow base, continuing in a straight line, in Java2D units) and sends anAnnotationChangeEventto all registered listeners.- Parameters:
offset- the offset (in Java2D units).- See Also:
-
getArrowLength
Returns the arrow length.- Returns:
- The arrow length.
- See Also:
-
setArrowLength
Sets the arrow length and sends anAnnotationChangeEventto all registered listeners.- Parameters:
length- the length.- See Also:
-
getArrowWidth
Returns the arrow width.- Returns:
- The arrow width (in Java2D units).
- See Also:
-
setArrowWidth
Sets the arrow width and sends anAnnotationChangeEventto all registered listeners.- Parameters:
width- the width (in Java2D units).- See Also:
-
getArrowStroke
Returns the stroke used to draw the arrow line.- Returns:
- The arrow stroke (never
null). - See Also:
-
setArrowStroke
Sets the stroke used to draw the arrow line and sends anAnnotationChangeEventto all registered listeners.- Parameters:
stroke- the stroke (nullnot permitted).- See Also:
-
getArrowPaint
Returns the paint used for the arrow.- Returns:
- The arrow paint (never
null). - See Also:
-
setArrowPaint
Sets the paint used for the arrow and sends anAnnotationChangeEventto all registered listeners.- Parameters:
paint- the arrow paint (nullnot permitted).- See Also:
-
draw
public void draw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info) Draws the annotation.- Specified by:
drawin interfaceXYAnnotation- Overrides:
drawin classXYTextAnnotation- 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
Tests this annotation for equality with an arbitrary object.- Overrides:
equalsin classXYTextAnnotation- Parameters:
obj- the object (nullpermitted).- Returns:
trueorfalse.
-
canEqual
Ensures symmetry between super/subclass implementations of equals. For more detail, see http://jqno.nl/equalsverifier/manual/inheritance.- Overrides:
canEqualin classXYTextAnnotation- Parameters:
other- Object- Returns:
- true ONLY if the parameter is THIS class type
-
hashCode
Returns a hash code for this instance.- Overrides:
hashCodein classXYTextAnnotation- Returns:
- A hash code.
-
clone
Returns a clone of the annotation.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classXYTextAnnotation- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if the annotation can't be cloned.
-