org.jfree.chart.panel

## Class CrosshairOverlay

- java.lang.Object
- - org.jfree.chart.panel.AbstractOverlay
  - - org.jfree.chart.panel.CrosshairOverlay

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

    public class CrosshairOverlay
    extends AbstractOverlay
    implements Overlay, java.beans.PropertyChangeListener, org.jfree.util.PublicCloneable, java.lang.Cloneable, java.io.Serializable

An overlay for a `ChartPanel` that draws crosshairs on a plot.

Since:
  1.0.13
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`CrosshairOverlay()` Default constructor.

### Method Summary

Methods
`void` `addDomainCrosshair(Crosshair crosshair)` Adds a crosshair against the domain axis and sends an `OverlayChangeEvent` to all registered listeners.
`void` `addRangeCrosshair(Crosshair crosshair)` Adds a crosshair against the range axis and sends an `OverlayChangeEvent` to all registered listeners.
`void` `clearDomainCrosshairs()` Clears all the domain crosshairs from the overlay and sends an `OverlayChangeEvent` to all registered listeners.
`void` `clearRangeCrosshairs()` Clears all the range crosshairs from the overlay and sends an `OverlayChangeEvent` to all registered listeners.
`java.lang.Object` `clone()` Returns a clone of this instance.
`protected void` `drawHorizontalCrosshair(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double y, Crosshair crosshair)` Draws a crosshair horizontally across the plot.
`protected void` `drawVerticalCrosshair(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double x, Crosshair crosshair)` Draws a crosshair vertically on the plot.
`boolean` `equals(java.lang.Object obj)` Tests this overlay for equality with an arbitrary object.
`java.util.List` `getDomainCrosshairs()` Returns a new list containing the domain crosshairs for this overlay.
`java.util.List` `getRangeCrosshairs()` Returns a new list containing the range crosshairs for this overlay.
`void` `paintOverlay(java.awt.Graphics2D g2, ChartPanel chartPanel)` Paints the crosshairs in the layer.
`void` `propertyChange(java.beans.PropertyChangeEvent e)` Receives a property change event (typically a change in one of the crosshairs).
`void` `removeDomainCrosshair(Crosshair crosshair)` Removes a domain axis crosshair and sends an `OverlayChangeEvent` to all registered listeners.
`void` `removeRangeCrosshair(Crosshair crosshair)` Removes a range axis crosshair and sends an `OverlayChangeEvent` to all registered listeners.

### Methods inherited from class org.jfree.chart.panel.AbstractOverlay

`addChangeListener, fireOverlayChanged, notifyListeners, removeChangeListener`

### Methods inherited from class java.lang.Object

`finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.jfree.chart.panel.Overlay

`addChangeListener, removeChangeListener`

### Constructor Detail

#### CrosshairOverlay

    public CrosshairOverlay()

Default constructor.

### Method Detail

#### addDomainCrosshair

    public void addDomainCrosshair(Crosshair crosshair)

Adds a crosshair against the domain axis and sends an `OverlayChangeEvent` to all registered listeners.

Parameters:
  `crosshair` - the crosshair (`null` not permitted).
See Also:
  `removeDomainCrosshair(org.jfree.chart.plot.Crosshair)`, `addRangeCrosshair(org.jfree.chart.plot.Crosshair)`

#### 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:
  `addDomainCrosshair(org.jfree.chart.plot.Crosshair)`

#### clearDomainCrosshairs

    public void clearDomainCrosshairs()

Clears all the domain crosshairs from the overlay and sends an `OverlayChangeEvent` to all registered listeners.

#### getDomainCrosshairs

    public java.util.List 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:
  `addRangeCrosshair(org.jfree.chart.plot.Crosshair)`

#### clearRangeCrosshairs

    public void clearRangeCrosshairs()

Clears all the range crosshairs from the overlay and sends an `OverlayChangeEvent` to all registered listeners.

#### getRangeCrosshairs

    public java.util.List 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)

Paints the crosshairs in the layer.

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.

#### 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 `org.jfree.util.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.