Class CrosshairOverlay

  • All Implemented Interfaces:
    java.beans.PropertyChangeListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, Overlay, PublicCloneable

    public class CrosshairOverlay
    extends AbstractOverlay
    implements Overlay, java.beans.PropertyChangeListener, PublicCloneable, java.lang.Cloneable, java.io.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:
    Serialized Form
    • Field Detail

      • xCrosshairs

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

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

      • CrosshairOverlay

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

      • 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 java.util.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).
      • 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 java.util.List<Crosshair> getRangeCrosshairs()
        Returns a new list containing the range crosshairs for this overlay.
        Returns:
        A list of crosshairs.
      • propertyChange

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

        public void paintOverlay​(java.awt.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​(java.awt.Graphics2D g2,
                                               java.awt.geom.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​(java.awt.Graphics2D g2,
                                             java.awt.geom.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 java.awt.geom.Point2D calculateLabelPoint​(java.awt.geom.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.
      • equals

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

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