- java.lang.Object
-
- org.jfree.chart.renderer.AbstractRenderer
-
- org.jfree.chart.renderer.xy.AbstractXYItemRenderer
-
- org.jfree.chart.renderer.xy.XYDifferenceRenderer
-
- All Implemented Interfaces:
Serializable,Cloneable,EventListener,PublicCloneable,ChartElement,AnnotationChangeListener,org.jfree.chart.legend.LegendItemSource,XYItemRenderer
public class XYDifferenceRenderer extends AbstractXYItemRenderer implements XYItemRenderer, PublicCloneable
A renderer for anXYPlotthat highlights the differences between two series. The example shown here is generated by theDifferenceChartDemo1.javaprogram included in the JFreeChart demo collection:

- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.jfree.chart.renderer.AbstractRenderer
DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO
-
-
Constructor Summary
Constructors Constructor Description XYDifferenceRenderer()Creates a new renderer with default attributes.XYDifferenceRenderer(Paint positivePaint, Paint negativePaint, boolean shapes)Creates a new renderer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectclone()Returns a clone of the renderer.voiddrawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)Draws the visual representation of a single data item.protected voiddrawItemPass0(Graphics2D x_graphics, Rectangle2D x_dataArea, PlotRenderingInfo x_info, XYPlot x_plot, ValueAxis x_domainAxis, ValueAxis x_rangeAxis, XYDataset x_dataset, int x_series, int x_item, CrosshairState x_crosshairState)Draws the visual representation of a single data item, first pass.protected voiddrawItemPass1(Graphics2D x_graphics, Rectangle2D x_dataArea, PlotRenderingInfo x_info, XYPlot x_plot, ValueAxis x_domainAxis, ValueAxis x_rangeAxis, XYDataset x_dataset, int x_series, int x_item, CrosshairState x_crosshairState)Draws the visual representation of a single data item, second pass.booleanequals(Object obj)Tests this renderer for equality with an arbitrary object.org.jfree.chart.legend.LegendItemgetLegendItem(int datasetIndex, int series)Returns a default legend item for the specified series.ShapegetLegendLine()Returns the shape used to represent a line in the legend.PaintgetNegativePaint()Returns the paint used to highlight negative differences.intgetPassCount()Returns2, the number of passes required by the renderer.PaintgetPositivePaint()Returns the paint used to highlight positive differences.booleangetRoundXCoordinates()Returns the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values.booleangetShapesVisible()Returns a flag that controls whether or not shapes are drawn for each data value.XYItemRendererStateinitialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)Initialises the renderer and returns a state object that should be passed to subsequent calls to the drawItem() method.voidsetLegendLine(Shape line)Sets the shape used as a line in each legend item and sends aRendererChangeEventto all registered listeners.voidsetNegativePaint(Paint paint)Sets the paint used to highlight negative differences.voidsetPositivePaint(Paint paint)Sets the paint used to highlight positive differences and sends aRendererChangeEventto all registered listeners.voidsetRoundXCoordinates(boolean round)Sets the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values, and sends aRendererChangeEventto all registered listeners.voidsetShapesVisible(boolean flag)Sets a flag that controls whether or not shapes are drawn for each data value, and sends aRendererChangeEventto all registered listeners.-
Methods inherited from class org.jfree.chart.renderer.xy.AbstractXYItemRenderer
addAnnotation, addAnnotation, addEntity, annotationChanged, beginElementGroup, calculateDomainMarkerTextAnchorPoint, drawAnnotations, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findDomainBounds, findRangeBounds, findRangeBounds, getAnnotations, getDefaultItemLabelGenerator, getDefaultToolTipGenerator, getDrawingSupplier, getItemLabelGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getURLGenerator, hashCode, lineTo, moveTo, removeAnnotation, removeAnnotations, setDefaultItemLabelGenerator, setDefaultToolTipGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setURLGenerator, updateCrosshairValues
-
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, beginElementGroup, calculateLabelAnchorPoint, clearSeriesPaints, clearSeriesStrokes, endElementGroup, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getDataBoundsIncludesVisibleSeriesOnly, getDefaultCreateEntities, getDefaultEntityRadius, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultLegendShape, getDefaultLegendTextFont, getDefaultLegendTextPaint, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendShape, getLegendTextFont, getLegendTextPaint, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisibleInLegend, getTreatLegendShapeAsLine, hasListener, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupLegendShape, lookupLegendTextFont, lookupLegendTextPaint, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, receive, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setDataBoundsIncludesVisibleSeriesOnly, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultEntityRadius, setDefaultFillPaint, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelFont, setDefaultItemLabelPaint, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultLegendShape, setDefaultLegendTextFont, setDefaultLegendTextPaint, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setItemLabelAnchorOffset, setLegendShape, setLegendTextFont, setLegendTextPaint, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setTreatLegendShapeAsLine
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jfree.chart.ChartElement
receive
-
Methods inherited from interface org.jfree.chart.renderer.xy.XYItemRenderer
addAnnotation, addAnnotation, addChangeListener, drawAnnotations, drawDomainLine, drawDomainMarker, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getAnnotations, getDefaultCreateEntities, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelGenerator, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getDefaultToolTipGenerator, getItemCreateEntity, getItemFillPaint, getItemLabelFont, getItemLabelGenerator, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendItemLabelGenerator, getNegativeItemLabelPosition, getPlot, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelGenerator, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesToolTipGenerator, getSeriesVisible, getSeriesVisibleInLegend, getToolTipGenerator, getURLGenerator, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeAnnotation, removeAnnotations, removeChangeListener, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultFillPaint, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelGenerator, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setDefaultToolTipGenerator, setLegendItemLabelGenerator, setPlot, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelGenerator, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesToolTipGenerator, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setURLGenerator
-
-
-
-
Constructor Detail
-
XYDifferenceRenderer
public XYDifferenceRenderer()
Creates a new renderer with default attributes.
-
XYDifferenceRenderer
public XYDifferenceRenderer(Paint positivePaint, Paint negativePaint, boolean shapes)
Creates a new renderer.- Parameters:
positivePaint- the highlight color for positive differences (nullnot permitted).negativePaint- the highlight color for negative differences (nullnot permitted).shapes- draw shapes?
-
-
Method Detail
-
getPositivePaint
public Paint getPositivePaint()
Returns the paint used to highlight positive differences.- Returns:
- The paint (never
null). - See Also:
setPositivePaint(Paint)
-
setPositivePaint
public void setPositivePaint(Paint paint)
Sets the paint used to highlight positive differences and sends aRendererChangeEventto all registered listeners.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getPositivePaint()
-
getNegativePaint
public Paint getNegativePaint()
Returns the paint used to highlight negative differences.- Returns:
- The paint (never
null). - See Also:
setNegativePaint(Paint)
-
setNegativePaint
public void setNegativePaint(Paint paint)
Sets the paint used to highlight negative differences.- Parameters:
paint- the paint (nullnot permitted).- See Also:
getNegativePaint()
-
getShapesVisible
public boolean getShapesVisible()
Returns a flag that controls whether or not shapes are drawn for each data value.- Returns:
- A boolean.
- See Also:
setShapesVisible(boolean)
-
setShapesVisible
public void setShapesVisible(boolean flag)
Sets a flag that controls whether or not shapes are drawn for each data value, and sends aRendererChangeEventto all registered listeners.- Parameters:
flag- the flag.- See Also:
getShapesVisible()
-
getLegendLine
public Shape getLegendLine()
Returns the shape used to represent a line in the legend.- Returns:
- The legend line (never
null). - See Also:
setLegendLine(Shape)
-
setLegendLine
public void setLegendLine(Shape line)
Sets the shape used as a line in each legend item and sends aRendererChangeEventto all registered listeners.- Parameters:
line- the line (nullnot permitted).- See Also:
getLegendLine()
-
getRoundXCoordinates
public boolean getRoundXCoordinates()
Returns the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values.- Returns:
- The flag.
- See Also:
setRoundXCoordinates(boolean)
-
setRoundXCoordinates
public void setRoundXCoordinates(boolean round)
Sets the flag that controls whether or not the x-coordinates (in Java2D space) are rounded to integer values, and sends aRendererChangeEventto all registered listeners.- Parameters:
round- the new flag value.- See Also:
getRoundXCoordinates()
-
initialise
public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer and returns a state object that should be passed to subsequent calls to the drawItem() method. This method will be called before the first item is rendered, giving the renderer an opportunity to initialise any state information it wants to maintain. The renderer can do nothing if it chooses.- Specified by:
initialisein interfaceXYItemRenderer- Overrides:
initialisein classAbstractXYItemRenderer- Parameters:
g2- the graphics device.dataArea- the area inside the axes.plot- the plot.data- the data.info- an optional info collection object to return data back to the caller.- Returns:
- A state object.
-
getPassCount
public int getPassCount()
Returns2, the number of passes required by the renderer. TheXYPlotwill run through the dataset this number of times.- Specified by:
getPassCountin interfaceXYItemRenderer- Overrides:
getPassCountin classAbstractXYItemRenderer- Returns:
- The number of passes required by the renderer.
-
drawItem
public void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)
Draws the visual representation of a single data item.- Specified by:
drawItemin interfaceXYItemRenderer- Parameters:
g2- the graphics device.state- the renderer state.dataArea- the area within which the data is being drawn.info- collects information about the drawing.plot- the plot (can be used to obtain standard color information etc).domainAxis- the domain (horizontal) axis.rangeAxis- the range (vertical) axis.dataset- the dataset.series- the series index (zero-based).item- the item index (zero-based).crosshairState- crosshair information for the plot (nullpermitted).pass- the pass index.
-
drawItemPass0
protected void drawItemPass0(Graphics2D x_graphics, Rectangle2D x_dataArea, PlotRenderingInfo x_info, XYPlot x_plot, ValueAxis x_domainAxis, ValueAxis x_rangeAxis, XYDataset x_dataset, int x_series, int x_item, CrosshairState x_crosshairState)
Draws the visual representation of a single data item, first pass.- Parameters:
x_graphics- the graphics device.x_dataArea- the area within which the data is being drawn.x_info- collects information about the drawing.x_plot- the plot (can be used to obtain standard color information etc).x_domainAxis- the domain (horizontal) axis.x_rangeAxis- the range (vertical) axis.x_dataset- the dataset.x_series- the series index (zero-based).x_item- the item index (zero-based).x_crosshairState- crosshair information for the plot (nullpermitted).
-
drawItemPass1
protected void drawItemPass1(Graphics2D x_graphics, Rectangle2D x_dataArea, PlotRenderingInfo x_info, XYPlot x_plot, ValueAxis x_domainAxis, ValueAxis x_rangeAxis, XYDataset x_dataset, int x_series, int x_item, CrosshairState x_crosshairState)
Draws the visual representation of a single data item, second pass. In the second pass, the renderer draws the lines and shapes for the individual points in the two series.- Parameters:
x_graphics- the graphics device.x_dataArea- the area within which the data is being drawn.x_info- collects information about the drawing.x_plot- the plot (can be used to obtain standard color information etc).x_domainAxis- the domain (horizontal) axis.x_rangeAxis- the range (vertical) axis.x_dataset- the dataset.x_series- the series index (zero-based).x_item- the item index (zero-based).x_crosshairState- crosshair information for the plot (nullpermitted).
-
getLegendItem
public org.jfree.chart.legend.LegendItem getLegendItem(int datasetIndex, int series)
Returns a default legend item for the specified series. Subclasses should override this method to generate customised items.- Specified by:
getLegendItemin interfaceXYItemRenderer- Overrides:
getLegendItemin classAbstractXYItemRenderer- Parameters:
datasetIndex- the dataset index (zero-based).series- the series index (zero-based).- Returns:
- A legend item for the series.
-
equals
public boolean equals(Object obj)
Tests this renderer for equality with an arbitrary object.- Overrides:
equalsin classAbstractXYItemRenderer- Parameters:
obj- the object (nullpermitted).- Returns:
- A boolean.
-
clone
public Object clone() throws CloneNotSupportedException
Returns a clone of the renderer.- Specified by:
clonein interfacePublicCloneable- Overrides:
clonein classAbstractXYItemRenderer- Returns:
- A clone.
- Throws:
CloneNotSupportedException- if the renderer cannot be cloned.
-
-