public class

DateAxis

extends ValueAxis
implements Serializable Cloneable
java.lang.Object
   ↳ org.jfree.chart.axis.Axis
     ↳ org.jfree.chart.axis.ValueAxis
       ↳ org.jfree.chart.axis.DateAxis

Class Overview

The base class for axes that display dates. You will find it easier to understand how this axis works if you bear in mind that it really displays/measures integer (or long) data, where the integers are milliseconds since midnight, 1-Jan-1970. When displaying tick labels, the millisecond values are converted back to dates using a DateFormat instance.

You can also create a Timeline and supply in the constructor to create an axis that only contains certain domain values. For example, this allows you to create a date axis that only contains working days.

Summary

Constants
double DEFAULT_AUTO_RANGE_MINIMUM_SIZE_IN_MILLISECONDS The default minimum auto range size.
[Expand]
Inherited Constants
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
Fields
public static final Date DEFAULT_ANCHOR_DATE The default anchor date.
public static final DateRange DEFAULT_DATE_RANGE The default axis range.
public static final DateTickUnit DEFAULT_DATE_TICK_UNIT The default date tick unit.
[Expand]
Inherited Fields
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
Public Constructors
DateAxis()
Creates a date axis with no label.
DateAxis(String label)
Creates a date axis with the specified label.
DateAxis(String label, TimeZone zone)
This constructor is deprecated. From 1.0.11 onwards, use DateAxis(String, TimeZone, Locale) instead, to explicitly set the locale.
DateAxis(String label, TimeZone zone, Locale locale)
Creates a date axis.
Public Methods
Date calculateHighestVisibleTickValue(DateTickUnit unit)
Calculates the value of the highest visible tick on the axis.
Date calculateLowestVisibleTickValue(DateTickUnit unit)
Calculates the value of the lowest visible tick on the axis.
Object clone()
Returns a clone of the object.
void configure()
Configures the axis to work with the specified plot.
static TickUnitSource createStandardDateTickUnits(TimeZone zone)
This method is deprecated. Since 1.0.11, use createStandardDateTickUnits(TimeZone, Locale) to explicitly set the locale as well as the time zone.
static TickUnitSource createStandardDateTickUnits(TimeZone zone, Locale locale)
Returns a collection of standard date tick units.
static TickUnitSource createStandardDateTickUnits()
Returns a collection of standard date tick units that uses the default time zone.
double dateToJava2D(Date date, Rectangle2D area, RectangleEdge edge)
Translates a date to Java2D coordinates, based on the range displayed by this axis for the specified data area.
AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)
Draws the axis on a Java 2D graphics device (such as the screen or a printer).
boolean equals(Object obj)
Tests this axis for equality with an arbitrary object.
DateFormat getDateFormatOverride()
Returns the date format override.
Date getMaximumDate()
Returns the latest date visible on the axis.
Date getMinimumDate()
Returns the earliest date visible on the axis.
DateTickMarkPosition getTickMarkPosition()
Returns the tick mark position (start, middle or end of the time period).
DateTickUnit getTickUnit()
Returns the tick unit for the axis.
TimeZone getTimeZone()
Returns the time zone for the axis.
Timeline getTimeline()
Returns the underlying timeline used by this axis.
int hashCode()
Returns a hash code for this object.
boolean isHiddenValue(long millis)
Returns true if the axis hides this value, and false otherwise.
double java2DToValue(double java2DValue, Rectangle2D area, RectangleEdge edge)
Translates a Java2D coordinate into the corresponding data value.
List refreshTicks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).
void setDateFormatOverride(DateFormat formatter)
Sets the date format override.
void setMaximumDate(Date maximumDate)
Sets the maximum date visible on the axis and sends an AxisChangeEvent to all registered listeners.
void setMinimumDate(Date date)
Sets the minimum date visible on the axis and sends an AxisChangeEvent to all registered listeners.
void setRange(Range range, boolean turnOffAutoRange, boolean notify)
Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners.
void setRange(double lower, double upper)
Sets the axis range and sends an AxisChangeEvent to all registered listeners.
void setRange(Range range)
Sets the upper and lower bounds for the axis and sends an AxisChangeEvent to all registered listeners.
void setRange(Date lower, Date upper)
Sets the axis range and sends an AxisChangeEvent to all registered listeners.
void setTickMarkPosition(DateTickMarkPosition position)
Sets the tick mark position (start, middle or end of the time period) and sends an AxisChangeEvent to all registered listeners.
void setTickUnit(DateTickUnit unit)
Sets the tick unit for the axis.
void setTickUnit(DateTickUnit unit, boolean notify, boolean turnOffAutoSelection)
Sets the tick unit attribute.
void setTimeZone(TimeZone zone)
Sets the time zone for the axis and sends an AxisChangeEvent to all registered listeners.
void setTimeline(Timeline timeline)
Sets the underlying timeline to use for this axis.
double valueToJava2D(double value, Rectangle2D area, RectangleEdge edge)
Translates the data value to the display coordinates (Java 2D User Space) of the chart.
void zoomRange(double lowerPercent, double upperPercent)
Zooms in on the current range.
Protected Methods
void autoAdjustRange()
Rescales the axis to ensure that all data is visible.
Date nextStandardDate(Date date, DateTickUnit unit)
Returns the first "standard" date (based on the specified field and units).
Date previousStandardDate(Date date, DateTickUnit unit)
Returns the previous "standard" date, for a given date and tick unit.
List refreshTicksHorizontal(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Recalculates the ticks for the date axis.
List refreshTicksVertical(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Recalculates the ticks for the date axis.
void selectAutoTickUnit(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Selects an appropriate tick value for the axis.
void selectHorizontalAutoTickUnit(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Selects an appropriate tick size for the axis.
void selectVerticalAutoTickUnit(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Selects an appropriate tick size for the axis.
[Expand]
Inherited Methods
From class org.jfree.chart.axis.ValueAxis
From class org.jfree.chart.axis.Axis
From class java.lang.Object

Constants

public static final double DEFAULT_AUTO_RANGE_MINIMUM_SIZE_IN_MILLISECONDS

The default minimum auto range size.

Constant Value: 2.0

Fields

public static final Date DEFAULT_ANCHOR_DATE

The default anchor date.

public static final DateRange DEFAULT_DATE_RANGE

The default axis range.

public static final DateTickUnit DEFAULT_DATE_TICK_UNIT

The default date tick unit.

Public Constructors

public DateAxis ()

Creates a date axis with no label.

public DateAxis (String label)

Creates a date axis with the specified label.

Parameters
label the axis label (null permitted).

public DateAxis (String label, TimeZone zone)

This constructor is deprecated.
From 1.0.11 onwards, use DateAxis(String, TimeZone, Locale) instead, to explicitly set the locale.

Creates a date axis. A timeline is specified for the axis. This allows special transformations to occur between a domain of values and the values included in the axis.

Parameters
label the axis label (null permitted).
zone the time zone.

public DateAxis (String label, TimeZone zone, Locale locale)

Creates a date axis. A timeline is specified for the axis. This allows special transformations to occur between a domain of values and the values included in the axis.

Parameters
label the axis label (null permitted).
zone the time zone.
locale the locale (null not permitted).

Public Methods

public Date calculateHighestVisibleTickValue (DateTickUnit unit)

Calculates the value of the highest visible tick on the axis.

Parameters
unit date unit to use.
Returns
  • The value of the highest visible tick on the axis.

public Date calculateLowestVisibleTickValue (DateTickUnit unit)

Calculates the value of the lowest visible tick on the axis.

Parameters
unit date unit to use.
Returns
  • The value of the lowest visible tick on the axis.

public Object clone ()

Returns a clone of the object.

Returns
  • A clone.
Throws
CloneNotSupportedException if some component of the axis does not support cloning.

public void configure ()

Configures the axis to work with the specified plot. If the axis has auto-scaling, then sets the maximum and minimum values.

public static TickUnitSource createStandardDateTickUnits (TimeZone zone)

This method is deprecated.
Since 1.0.11, use createStandardDateTickUnits(TimeZone, Locale) to explicitly set the locale as well as the time zone.

Returns a collection of standard date tick units. This collection will be used by default, but you are free to create your own collection if you want to (see the setStandardTickUnits(TickUnitSource) method inherited from the ValueAxis class).

Parameters
zone the time zone (null not permitted).
Returns
  • A collection of standard date tick units.

public static TickUnitSource createStandardDateTickUnits (TimeZone zone, Locale locale)

Returns a collection of standard date tick units. This collection will be used by default, but you are free to create your own collection if you want to (see the setStandardTickUnits(TickUnitSource) method inherited from the ValueAxis class).

Parameters
zone the time zone (null not permitted).
locale the locale (null not permitted).
Returns
  • A collection of standard date tick units.

public static TickUnitSource createStandardDateTickUnits ()

Returns a collection of standard date tick units that uses the default time zone. This collection will be used by default, but you are free to create your own collection if you want to (see the setStandardTickUnits(TickUnitSource) method inherited from the ValueAxis class).

Returns
  • A collection of standard date tick units.

public double dateToJava2D (Date date, Rectangle2D area, RectangleEdge edge)

Translates a date to Java2D coordinates, based on the range displayed by this axis for the specified data area.

Parameters
date the date.
area the rectangle (in Java2D space) where the data is to be plotted.
edge the axis location.
Returns
  • The coordinate corresponding to the supplied date.

public AxisState draw (Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)

Draws the axis on a Java 2D graphics device (such as the screen or a printer).

Parameters
g2 the graphics device (null not permitted).
cursor the cursor location.
plotArea the area within which the axes and data should be drawn (null not permitted).
dataArea the area within which the data should be drawn (null not permitted).
edge the location of the axis (null not permitted).
plotState collects information about the plot (null permitted).
Returns
  • The axis state (never null).

public boolean equals (Object obj)

Tests this axis for equality with an arbitrary object.

Parameters
obj the object (null permitted).
Returns
  • A boolean.

public DateFormat getDateFormatOverride ()

Returns the date format override. If this is non-null, then it will be used to format the dates on the axis.

Returns
  • The formatter (possibly null).

public Date getMaximumDate ()

Returns the latest date visible on the axis.

Returns
  • The date.

public Date getMinimumDate ()

Returns the earliest date visible on the axis.

Returns
  • The date.

public DateTickMarkPosition getTickMarkPosition ()

Returns the tick mark position (start, middle or end of the time period).

Returns
  • The position (never null).

public DateTickUnit getTickUnit ()

Returns the tick unit for the axis.

Note: if the autoTickUnitSelection flag is true the tick unit may be changed while the axis is being drawn, so in that case the return value from this method may be irrelevant if the method is called before the axis has been drawn.

Returns
  • The tick unit (possibly null).

public TimeZone getTimeZone ()

Returns the time zone for the axis.

Returns
  • The time zone (never null).

public Timeline getTimeline ()

Returns the underlying timeline used by this axis.

Returns
  • The timeline.

public int hashCode ()

Returns a hash code for this object.

Returns
  • A hash code.

public boolean isHiddenValue (long millis)

Returns true if the axis hides this value, and false otherwise.

Parameters
millis the data value.
Returns
  • A value.

public double java2DToValue (double java2DValue, Rectangle2D area, RectangleEdge edge)

Translates a Java2D coordinate into the corresponding data value. To perform this translation, you need to know the area used for plotting data, and which edge the axis is located on.

Parameters
java2DValue the coordinate in Java2D space.
area the rectangle (in Java2D space) where the data is to be plotted.
edge the axis location.
Returns
  • A data value.

public List refreshTicks (Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)

Calculates the positions of the tick labels for the axis, storing the results in the tick label list (ready for drawing).

Parameters
g2 the graphics device.
state the axis state.
dataArea the area in which the plot should be drawn.
edge the location of the axis.
Returns
  • A list of ticks.

public void setDateFormatOverride (DateFormat formatter)

Sets the date format override. If this is non-null, then it will be used to format the dates on the axis.

Parameters
formatter the date formatter (null permitted).

public void setMaximumDate (Date maximumDate)

Sets the maximum date visible on the axis and sends an AxisChangeEvent to all registered listeners. If maximumDate is on or before the current minimum date for the axis, the minimum date will be shifted to preserve the current length of the axis.

Parameters
maximumDate the date (null not permitted).

public void setMinimumDate (Date date)

Sets the minimum date visible on the axis and sends an AxisChangeEvent to all registered listeners. If date is on or after the current maximum date for the axis, the maximum date will be shifted to preserve the current length of the axis.

Parameters
date the date (null not permitted).

public void setRange (Range range, boolean turnOffAutoRange, boolean notify)

Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false (optional).

Parameters
range the range (null not permitted).
turnOffAutoRange a flag that controls whether or not the auto range is turned off.
notify a flag that controls whether or not listeners are notified.

public void setRange (double lower, double upper)

Sets the axis range and sends an AxisChangeEvent to all registered listeners.

Parameters
lower the lower bound for the axis.
upper the upper bound for the axis.

public void setRange (Range range)

Sets the upper and lower bounds for the axis and sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false.

Parameters
range the new range (null not permitted).

public void setRange (Date lower, Date upper)

Sets the axis range and sends an AxisChangeEvent to all registered listeners.

Parameters
lower the lower bound for the axis.
upper the upper bound for the axis.

public void setTickMarkPosition (DateTickMarkPosition position)

Sets the tick mark position (start, middle or end of the time period) and sends an AxisChangeEvent to all registered listeners.

Parameters
position the position (null not permitted).

public void setTickUnit (DateTickUnit unit)

Sets the tick unit for the axis. The auto-tick-unit-selection flag is set to false, and registered listeners are notified that the axis has been changed.

Parameters
unit the tick unit.

public void setTickUnit (DateTickUnit unit, boolean notify, boolean turnOffAutoSelection)

Sets the tick unit attribute.

Parameters
unit the new tick unit.
notify notify registered listeners?
turnOffAutoSelection turn off auto selection?
See Also

public void setTimeZone (TimeZone zone)

Sets the time zone for the axis and sends an AxisChangeEvent to all registered listeners.

Parameters
zone the time zone (null not permitted).
See Also

public void setTimeline (Timeline timeline)

Sets the underlying timeline to use for this axis.

If the timeline is changed, an AxisChangeEvent is sent to all registered listeners.

Parameters
timeline the timeline.

public double valueToJava2D (double value, Rectangle2D area, RectangleEdge edge)

Translates the data value to the display coordinates (Java 2D User Space) of the chart.

Parameters
value the date to be plotted.
area the rectangle (in Java2D space) where the data is to be plotted.
edge the axis location.
Returns
  • The coordinate corresponding to the supplied data value.

public void zoomRange (double lowerPercent, double upperPercent)

Zooms in on the current range.

Parameters
lowerPercent the new lower bound.
upperPercent the new upper bound.

Protected Methods

protected void autoAdjustRange ()

Rescales the axis to ensure that all data is visible.

protected Date nextStandardDate (Date date, DateTickUnit unit)

Returns the first "standard" date (based on the specified field and units).

Parameters
date the reference date.
unit the date tick unit.
Returns
  • The next "standard" date.

protected Date previousStandardDate (Date date, DateTickUnit unit)

Returns the previous "standard" date, for a given date and tick unit.

Parameters
date the reference date.
unit the tick unit.
Returns
  • The previous "standard" date.

protected List refreshTicksHorizontal (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Recalculates the ticks for the date axis.

Parameters
g2 the graphics device.
dataArea the area in which the data is to be drawn.
edge the location of the axis.
Returns
  • A list of ticks.

protected List refreshTicksVertical (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Recalculates the ticks for the date axis.

Parameters
g2 the graphics device.
dataArea the area in which the plot should be drawn.
edge the location of the axis.
Returns
  • A list of ticks.

protected void selectAutoTickUnit (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Selects an appropriate tick value for the axis. The strategy is to display as many ticks as possible (selected from an array of 'standard' tick units) without the labels overlapping.

Parameters
g2 the graphics device.
dataArea the area defined by the axes.
edge the axis location.

protected void selectHorizontalAutoTickUnit (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Selects an appropriate tick size for the axis. The strategy is to display as many ticks as possible (selected from a collection of 'standard' tick units) without the labels overlapping.

Parameters
g2 the graphics device.
dataArea the area defined by the axes.
edge the axis location.

protected void selectVerticalAutoTickUnit (Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)

Selects an appropriate tick size for the axis. The strategy is to display as many ticks as possible (selected from a collection of 'standard' tick units) without the labels overlapping.

Parameters
g2 the graphics device.
dataArea the area in which the plot should be drawn.
edge the axis location.