Module platform

Class StackedXYAreaRenderer

All Implemented Interfaces:
Serializable, Cloneable, EventListener, AnnotationChangeListener, LegendItemSource, XYItemRenderer, PublicCloneable

public class StackedXYAreaRenderer extends XYAreaRenderer implements Cloneable, PublicCloneable, Serializable
A stacked area renderer for the XYPlot class.

The example shown here is generated by the StackedXYAreaRendererDemo1.java program included in the JFreeChart demo collection:

StackedXYAreaRendererSample.png

SPECIAL NOTE: This renderer does not currently handle negative data values correctly. This should get fixed at some point, but the current workaround is to use the StackedXYAreaRenderer2 class instead.
See Also:
  • Constructor Details

    • StackedXYAreaRenderer

      public StackedXYAreaRenderer()
      Creates a new renderer.
    • StackedXYAreaRenderer

      public StackedXYAreaRenderer(int type)
      Constructs a new renderer.
      Parameters:
      type - the type of the renderer.
    • StackedXYAreaRenderer

      public StackedXYAreaRenderer(int type, XYToolTipGenerator labelGenerator, XYURLGenerator urlGenerator)
      Constructs a new renderer. To specify the type of renderer, use one of the constants: SHAPES, LINES, SHAPES_AND_LINES, AREA or AREA_AND_SHAPES.
      Parameters:
      type - the type of renderer.
      labelGenerator - the tool tip generator (null permitted).
      urlGenerator - the URL generator (null permitted).
  • Method Details

    • getShapePaint

      public Paint getShapePaint()
      Returns the paint used for rendering shapes, or null if using series paints.
      Returns:
      The paint (possibly null).
      See Also:
    • setShapePaint

      public void setShapePaint(Paint shapePaint)
      Sets the paint for rendering shapes and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      shapePaint - the paint (null permitted).
      See Also:
    • getShapeStroke

      public Stroke getShapeStroke()
      Returns the stroke used for rendering shapes, or null if using series strokes.
      Returns:
      The stroke (possibly null).
      See Also:
    • setShapeStroke

      public void setShapeStroke(Stroke shapeStroke)
      Sets the stroke for rendering shapes and sends a RendererChangeEvent to all registered listeners.
      Parameters:
      shapeStroke - the stroke (null permitted).
      See Also:
    • initialise

      public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
      Initialises the renderer. 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.
      Specified by:
      initialise in interface XYItemRenderer
      Overrides:
      initialise in class XYAreaRenderer
      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 that should be passed to subsequent calls to the drawItem() method.
    • getPassCount

      public int getPassCount()
      Returns the number of passes required by the renderer.
      Specified by:
      getPassCount in interface XYItemRenderer
      Overrides:
      getPassCount in class AbstractXYItemRenderer
      Returns:
      2.
    • findRangeBounds

      public Range findRangeBounds(XYDataset dataset)
      Returns the range of values the renderer requires to display all the items from the specified dataset.
      Specified by:
      findRangeBounds in interface XYItemRenderer
      Overrides:
      findRangeBounds in class AbstractXYItemRenderer
      Parameters:
      dataset - the dataset (null permitted).
      Returns:
      The range ([0.0, 0.0] if the dataset contains no values, and null if the dataset is null).
      Throws:
      ClassCastException - if dataset is not an instance of TableXYDataset.
      See Also:
    • 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:
      drawItem in interface XYItemRenderer
      Overrides:
      drawItem in class XYAreaRenderer
      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 axis.
      rangeAxis - the range axis.
      dataset - the dataset.
      series - the series index (zero-based).
      item - the item index (zero-based).
      crosshairState - information about crosshairs on a plot.
      pass - the pass index.
      Throws:
      ClassCastException - if state is not an instance of StackedXYAreaRendererState or dataset is not an instance of TableXYDataset.
    • getPreviousHeight

      protected double getPreviousHeight(TableXYDataset dataset, int series, int index)
      Calculates the stacked value of the all series up to, but not including series for the specified item. It returns 0.0 if series is the first series, i.e. 0.
      Parameters:
      dataset - the dataset.
      series - the series.
      index - the index.
      Returns:
      The cumulative value for all series' values up to but excluding series for index.
    • equals

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

      public Object clone() throws CloneNotSupportedException
      Returns a clone of the renderer.
      Specified by:
      clone in interface PublicCloneable
      Overrides:
      clone in class XYAreaRenderer
      Returns:
      A clone.
      Throws:
      CloneNotSupportedException - if the renderer cannot be cloned.