Class CrosshairOverlay

java.lang.Object
org.jfree.chart.panel.AbstractOverlay
org.jfree.chart.panel.CrosshairOverlay
All Implemented Interfaces:
PropertyChangeListener, Serializable, Cloneable, EventListener, Overlay, PublicCloneable

public class CrosshairOverlay extends AbstractOverlay implements Overlay, PropertyChangeListener, PublicCloneable, Cloneable, Serializable
An overlay for a ChartPanel that draws crosshairs on a chart. If you are using the JavaFX extensions for JFreeChart, then you should use the CrosshairOverlayFX class.
See Also:
  • Field Details

    • xCrosshairs

      private List<Crosshair> xCrosshairs
      Storage for the crosshairs along the x-axis.
    • yCrosshairs

      private List<Crosshair> yCrosshairs
      Storage for the crosshairs along the y-axis.
  • Constructor Details

    • CrosshairOverlay

      public CrosshairOverlay()
      Creates a new overlay that initially contains no crosshairs.
  • Method Details

    • addDomainCrosshair

      public void addDomainCrosshair(Crosshair crosshair)
      Adds a crosshair against the domain axis (x-axis) and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • removeDomainCrosshair

      public void removeDomainCrosshair(Crosshair crosshair)
      Removes a domain axis crosshair and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • clearDomainCrosshairs

      public void clearDomainCrosshairs()
      Clears all the domain crosshairs from the overlay and sends an OverlayChangeEvent to all registered listeners (unless there were no crosshairs to begin with).
    • getDomainCrosshairs

      public List<Crosshair> getDomainCrosshairs()
      Returns a new list containing the domain crosshairs for this overlay.
      Returns:
      A list of crosshairs.
    • addRangeCrosshair

      public void addRangeCrosshair(Crosshair crosshair)
      Adds a crosshair against the range axis and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
    • removeRangeCrosshair

      public void removeRangeCrosshair(Crosshair crosshair)
      Removes a range axis crosshair and sends an OverlayChangeEvent to all registered listeners.
      Parameters:
      crosshair - the crosshair (null not permitted).
      See Also:
    • clearRangeCrosshairs

      public void clearRangeCrosshairs()
      Clears all the range crosshairs from the overlay and sends an OverlayChangeEvent to all registered listeners (unless there were no crosshairs to begin with).
    • getRangeCrosshairs

      public List<Crosshair> getRangeCrosshairs()
      Returns a new list containing the range crosshairs for this overlay.
      Returns:
      A list of crosshairs.
    • propertyChange

      public void propertyChange(PropertyChangeEvent e)
      Receives a property change event (typically a change in one of the crosshairs).
      Specified by:
      propertyChange in interface PropertyChangeListener
      Parameters:
      e - the event.
    • paintOverlay

      public void paintOverlay(Graphics2D g2, ChartPanel chartPanel)
      Renders the crosshairs in the overlay on top of the chart that has just been rendered in the specified chartPanel. This method is called by the JFreeChart framework, you won't normally call it from user code.
      Specified by:
      paintOverlay in interface Overlay
      Parameters:
      g2 - the graphics target.
      chartPanel - the chart panel.
    • drawHorizontalCrosshair

      protected void drawHorizontalCrosshair(Graphics2D g2, Rectangle2D dataArea, double y, Crosshair crosshair)
      Draws a crosshair horizontally across the plot.
      Parameters:
      g2 - the graphics target.
      dataArea - the data area.
      y - the y-value in Java2D space.
      crosshair - the crosshair.
    • drawVerticalCrosshair

      protected void drawVerticalCrosshair(Graphics2D g2, Rectangle2D dataArea, double x, Crosshair crosshair)
      Draws a crosshair vertically on the plot.
      Parameters:
      g2 - the graphics target.
      dataArea - the data area.
      x - the x-value in Java2D space.
      crosshair - the crosshair.
    • calculateLabelPoint

      private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY)
      Calculates the anchor point for a label.
      Parameters:
      line - the line for the crosshair.
      anchor - the anchor point.
      deltaX - the x-offset.
      deltaY - the y-offset.
      Returns:
      The anchor point.
    • textAlignPtForLabelAnchorV

      private TextAnchor textAlignPtForLabelAnchorV(RectangleAnchor anchor)
      Returns the text anchor that is used to align a label to its anchor point.
      Parameters:
      anchor - the anchor.
      Returns:
      The text alignment point.
    • textAlignPtForLabelAnchorH

      private TextAnchor textAlignPtForLabelAnchorH(RectangleAnchor anchor)
      Returns the text anchor that is used to align a label to its anchor point.
      Parameters:
      anchor - the anchor.
      Returns:
      The text alignment point.
    • flipAnchorH

      private RectangleAnchor flipAnchorH(RectangleAnchor anchor)
    • flipAnchorV

      private RectangleAnchor flipAnchorV(RectangleAnchor anchor)
    • equals

      public boolean equals(Object obj)
      Tests this overlay for equality with an arbitrary object.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object (null permitted).
      Returns:
      A boolean.
    • clone

      public Object clone() throws CloneNotSupportedException
      Returns a clone of this instance.
      Specified by:
      clone in interface PublicCloneable
      Overrides:
      clone in class Object
      Returns:
      A clone of this instance.
      Throws:
      CloneNotSupportedException - if there is some problem with the cloning.