## org.jfree.chart.plot
Class MeterPlot

    java.lang.Object
      org.jfree.chart.plot.Plot
          org.jfree.chart.plot.MeterPlot

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.util.EventListener, AxisChangeListener, MarkerChangeListener, LegendItemSource, DatasetChangeListener, org.jfree.util.PublicCloneable

    public class MeterPlot

extends Plot
implements java.io.Serializable, java.lang.Cloneable

A plot that displays a single value in the form of a needle on a dial. Defined ranges (for example, 'normal', 'warning' and 'critical') can be highlighted on the dial.

See Also:
  Serialized Form

Field Summary
`static float` `DEFAULT_BORDER_SIZE` The default border size.
`static float` `DEFAULT_CIRCLE_SIZE` The default circle size.
`static java.awt.Font` `DEFAULT_LABEL_FONT` The default label font.
`static int` `DEFAULT_METER_ANGLE` The default meter angle.
`protected static java.util.ResourceBundle` `localizationResources` The resourceBundle for the localization.

Fields inherited from class org.jfree.chart.plot.Plot
`DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_LEGEND_ITEM_BOX, DEFAULT_LEGEND_ITEM_CIRCLE, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO`

Constructor Summary
`MeterPlot()` Creates a new plot with a default range of `0` to `100` and no value to display.
`MeterPlot(ValueDataset dataset)` Creates a new plot that displays the value from the supplied dataset.

Method Summary
`void` `addInterval(MeterInterval interval)` Adds an interval and sends a `PlotChangeEvent` to all registered listeners.
`void` `clearIntervals()` Clears the intervals for the plot and sends a `PlotChangeEvent` to all registered listeners.
`java.lang.Object` `clone()` Returns an independent copy (clone) of the plot.
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.awt.geom.Point2D anchor, PlotState parentState, PlotRenderingInfo info)` Draws the plot on a Java 2D graphics device (such as the screen or a printer).
`protected void` `drawArc(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, double minValue, double maxValue, java.awt.Paint paint, java.awt.Stroke stroke)` Draws an arc.
`protected void` `drawArcForInterval(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D meterArea, MeterInterval interval)` Draws the arc to represent an interval.
`protected void` `drawTick(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D meterArea, double value)` Draws a tick.
`protected void` `drawTick(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D meterArea, double value, boolean label)` Draws a tick on the dial.
`protected void` `drawTicks(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D meterArea, double minValue, double maxValue)` Draws the ticks that subdivide the overall range.
`protected void` `drawValueLabel(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the value label just below the center of the dial.
`boolean` `equals(java.lang.Object obj)` Tests the plot for equality with an arbitrary object.
`protected void` `fillArc(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, double minValue, double maxValue, java.awt.Paint paint, boolean dial)` Fills an arc on the dial between the given values.
`ValueDataset` `getDataset()` Returns the dataset for the plot.
`java.awt.Paint` `getDialBackgroundPaint()` Returns the paint for the dial background.
`java.awt.Paint` `getDialOutlinePaint()` Returns the dial outline paint.
`DialShape` `getDialShape()` Returns the dial shape.
`boolean` `getDrawBorder()` Returns a flag that controls whether or not a rectangular border is drawn around the plot area.
`java.util.List` `getIntervals()` Returns an unmodifiable list of the intervals for the plot.
`LegendItemCollection` `getLegendItems()` Returns an item for each interval.
`int` `getMeterAngle()` Returns the meter angle in degrees.
`java.awt.Paint` `getNeedlePaint()` Returns the paint for the needle.
`java.lang.String` `getPlotType()` Returns a short string describing the type of plot.
`Range` `getRange()` Returns the overall range for the dial.
`java.awt.Font` `getTickLabelFont()` Returns the tick label font.
`java.text.NumberFormat` `getTickLabelFormat()` Returns the tick label format.
`java.awt.Paint` `getTickLabelPaint()` Returns the tick label paint.
`boolean` `getTickLabelsVisible()` Returns the flag that determines whether or not tick labels are visible.
`java.awt.Paint` `getTickPaint()` Returns the paint used to draw the ticks around the dial.
`double` `getTickSize()` Returns the tick size (the interval between ticks on the dial).
`java.lang.String` `getUnits()` Returns a string describing the units for the dial.
`java.awt.Font` `getValueFont()` Returns the font for the value label.
`java.awt.Paint` `getValuePaint()` Returns the paint for the value label.
`void` `setDataset(ValueDataset dataset)` Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers a `PlotChangeEvent`.
`void` `setDialBackgroundPaint(java.awt.Paint paint)` Sets the paint used to fill the dial background.
`void` `setDialOutlinePaint(java.awt.Paint paint)` Sets the dial outline paint and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDialShape(DialShape shape)` Sets the dial shape and sends a `PlotChangeEvent` to all registered listeners.
`void` `setDrawBorder(boolean draw)` Sets the flag that controls whether or not a rectangular border is drawn around the plot area and sends a `PlotChangeEvent` to all registered listeners.
`void` `setMeterAngle(int angle)` Sets the angle (in degrees) for the whole range of the dial and sends a `PlotChangeEvent` to all registered listeners.
`void` `setNeedlePaint(java.awt.Paint paint)` Sets the paint used to display the needle and sends a `PlotChangeEvent` to all registered listeners.
`void` `setRange(Range range)` Sets the range for the dial and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickLabelFont(java.awt.Font font)` Sets the tick label font and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickLabelFormat(java.text.NumberFormat format)` Sets the format for the tick labels and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickLabelPaint(java.awt.Paint paint)` Sets the tick label paint and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickLabelsVisible(boolean visible)` Sets the flag that controls whether or not the tick labels are visible and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickPaint(java.awt.Paint paint)` Sets the paint used to draw the tick labels around the dial and sends a `PlotChangeEvent` to all registered listeners.
`void` `setTickSize(double size)` Sets the tick size and sends a `PlotChangeEvent` to all registered listeners.
`void` `setUnits(java.lang.String units)` Sets the units for the dial and sends a `PlotChangeEvent` to all registered listeners.
`void` `setValueFont(java.awt.Font font)` Sets the font used to display the value label and sends a `PlotChangeEvent` to all registered listeners.
`void` `setValuePaint(java.awt.Paint paint)` Sets the paint used to display the value label and sends a `PlotChangeEvent` to all registered listeners.
`double` `valueToAngle(double value)` Translates a data value to an angle on the dial.
`void` `zoom(double percent)` A zoom method that does nothing.

Methods inherited from class org.jfree.chart.plot.Plot

`addChangeListener, axisChanged, datasetChanged, drawBackground, drawBackgroundImage, drawNoDataMessage, drawOutline, fillBackground, fillBackground, fireChangeEvent, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundImageAlpha, getBackgroundPaint, getDatasetGroup, getDrawingSupplier, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, handleClick, isOutlineVisible, isSubplot, markerChanged, notifyListeners, removeChangeListener, resolveDomainAxisLocation, resolveRangeAxisLocation, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundImageAlpha, setBackgroundPaint, setDatasetGroup, setDrawingSupplier, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setOutlineVisible, setParent`

Methods inherited from class java.lang.Object
`finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_METER_ANGLE

    public static final int DEFAULT_METER_ANGLE

  The default meter angle.

  See Also:
    Constant Field Values

### DEFAULT_BORDER_SIZE

    public static final float DEFAULT_BORDER_SIZE

  The default border size.

  See Also:
    Constant Field Values

### DEFAULT_CIRCLE_SIZE

    public static final float DEFAULT_CIRCLE_SIZE

  The default circle size.

  See Also:
    Constant Field Values

### DEFAULT_LABEL_FONT

    public static final java.awt.Font DEFAULT_LABEL_FONT

  The default label font.

### localizationResources

    protected static java.util.ResourceBundle localizationResources

  The resourceBundle for the localization.

Constructor Detail

### MeterPlot

    public MeterPlot()

  Creates a new plot with a default range of `0` to `100` and no value to display.

### MeterPlot

    public MeterPlot(ValueDataset dataset)

  Creates a new plot that displays the value from the supplied dataset.

  Parameters:
    `dataset` - the dataset (`null` permitted).

Method Detail

### getDialShape

    public DialShape getDialShape()

  Returns the dial shape. The default is `DialShape.CIRCLE`).

  Returns:
    The dial shape (never `null`).
  See Also:
    `setDialShape(DialShape)`

### setDialShape

    public void setDialShape(DialShape shape)

  Sets the dial shape and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `shape` - the shape (`null` not permitted).
  See Also:
    `getDialShape()`

### getMeterAngle

    public int getMeterAngle()

  Returns the meter angle in degrees. This defines, in part, the shape of the dial. The default is 270 degrees.

  Returns:
    The meter angle (in degrees).
  See Also:
    `setMeterAngle(int)`

### setMeterAngle

    public void setMeterAngle(int angle)

  Sets the angle (in degrees) for the whole range of the dial and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `angle` - the angle (in degrees, in the range 1-360).
  See Also:
    `getMeterAngle()`

### getRange

    public Range getRange()

  Returns the overall range for the dial.

  Returns:
    The overall range (never `null`).
  See Also:
    `setRange(Range)`

### setRange

    public void setRange(Range range)

  Sets the range for the dial and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `range` - the range (`null` not permitted and zero-length ranges not permitted).
  See Also:
    `getRange()`

### getTickSize

    public double getTickSize()

  Returns the tick size (the interval between ticks on the dial).

  Returns:
    The tick size.
  See Also:
    `setTickSize(double)`

### setTickSize

    public void setTickSize(double size)

  Sets the tick size and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `size` - the tick size (must be > 0).
  See Also:
    `getTickSize()`

### getTickPaint

    public java.awt.Paint getTickPaint()

  Returns the paint used to draw the ticks around the dial.

  Returns:
    The paint used to draw the ticks around the dial (never `null`).
  See Also:
    `setTickPaint(Paint)`

### setTickPaint

    public void setTickPaint(java.awt.Paint paint)

  Sets the paint used to draw the tick labels around the dial and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getTickPaint()`

### getUnits

    public java.lang.String getUnits()

  Returns a string describing the units for the dial.

  Returns:
    The units (possibly `null`).
  See Also:
    `setUnits(String)`

### setUnits

    public void setUnits(java.lang.String units)

  Sets the units for the dial and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `units` - the units (`null` permitted).
  See Also:
    `getUnits()`

### getNeedlePaint

    public java.awt.Paint getNeedlePaint()

  Returns the paint for the needle.

  Returns:
    The paint (never `null`).
  See Also:
    `setNeedlePaint(Paint)`

### setNeedlePaint

    public void setNeedlePaint(java.awt.Paint paint)

  Sets the paint used to display the needle and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getNeedlePaint()`

### getTickLabelsVisible

    public boolean getTickLabelsVisible()

  Returns the flag that determines whether or not tick labels are visible.

  Returns:
    The flag.
  See Also:
    `setTickLabelsVisible(boolean)`

### setTickLabelsVisible

    public void setTickLabelsVisible(boolean visible)

  Sets the flag that controls whether or not the tick labels are visible and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `visible` - the flag.
  See Also:
    `getTickLabelsVisible()`

### getTickLabelFont

    public java.awt.Font getTickLabelFont()

  Returns the tick label font.

  Returns:
    The font (never `null`).
  See Also:
    `setTickLabelFont(Font)`

### setTickLabelFont

    public void setTickLabelFont(java.awt.Font font)

  Sets the tick label font and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `font` - the font (`null` not permitted).
  See Also:
    `getTickLabelFont()`

### getTickLabelPaint

    public java.awt.Paint getTickLabelPaint()

  Returns the tick label paint.

  Returns:
    The paint (never `null`).
  See Also:
    `setTickLabelPaint(Paint)`

### setTickLabelPaint

    public void setTickLabelPaint(java.awt.Paint paint)

  Sets the tick label paint and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getTickLabelPaint()`

### getTickLabelFormat

    public java.text.NumberFormat getTickLabelFormat()

  Returns the tick label format.

  Returns:
    The tick label format (never `null`).
  See Also:
    `setTickLabelFormat(NumberFormat)`

### setTickLabelFormat

    public void setTickLabelFormat(java.text.NumberFormat format)

  Sets the format for the tick labels and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `format` - the format (`null` not permitted).
  See Also:
    `getTickLabelFormat()`

### getValueFont

    public java.awt.Font getValueFont()

  Returns the font for the value label.

  Returns:
    The font (never `null`).
  See Also:
    `setValueFont(Font)`

### setValueFont

    public void setValueFont(java.awt.Font font)

  Sets the font used to display the value label and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `font` - the font (`null` not permitted).
  See Also:
    `getValueFont()`

### getValuePaint

    public java.awt.Paint getValuePaint()

  Returns the paint for the value label.

  Returns:
    The paint (never `null`).
  See Also:
    `setValuePaint(Paint)`

### setValuePaint

    public void setValuePaint(java.awt.Paint paint)

  Sets the paint used to display the value label and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint (`null` not permitted).
  See Also:
    `getValuePaint()`

### getDialBackgroundPaint

    public java.awt.Paint getDialBackgroundPaint()

  Returns the paint for the dial background.

  Returns:
    The paint (possibly `null`).
  See Also:
    `setDialBackgroundPaint(Paint)`

### setDialBackgroundPaint

    public void setDialBackgroundPaint(java.awt.Paint paint)

  Sets the paint used to fill the dial background. Set this to `null` for no background.

  Parameters:
    `paint` - the paint (`null` permitted).
  See Also:
    `getDialBackgroundPaint()`

### getDrawBorder

    public boolean getDrawBorder()

  Returns a flag that controls whether or not a rectangular border is drawn around the plot area.

  Returns:
    A flag.
  See Also:
    `setDrawBorder(boolean)`

### setDrawBorder

    public void setDrawBorder(boolean draw)

  Sets the flag that controls whether or not a rectangular border is drawn around the plot area and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `draw` - the flag.
  See Also:
    `getDrawBorder()`

### getDialOutlinePaint

    public java.awt.Paint getDialOutlinePaint()

  Returns the dial outline paint.

  Returns:
    The paint.
  See Also:
    `setDialOutlinePaint(Paint)`

### setDialOutlinePaint

    public void setDialOutlinePaint(java.awt.Paint paint)

  Sets the dial outline paint and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `paint` - the paint.
  See Also:
    `getDialOutlinePaint()`

### getDataset

    public ValueDataset getDataset()

  Returns the dataset for the plot.

  Returns:
    The dataset (possibly `null`).
  See Also:
    `setDataset(ValueDataset)`

### setDataset

    public void setDataset(ValueDataset dataset)

  Sets the dataset for the plot, replacing the existing dataset if there is one, and triggers a `PlotChangeEvent`.

  Parameters:
    `dataset` - the dataset (`null` permitted).
  See Also:
    `getDataset()`

### getIntervals

    public java.util.List getIntervals()

  Returns an unmodifiable list of the intervals for the plot.

  Returns:
    A list.
  See Also:
    `addInterval(MeterInterval)`

### addInterval

    public void addInterval(MeterInterval interval)

  Adds an interval and sends a `PlotChangeEvent` to all registered listeners.

  Parameters:
    `interval` - the interval (`null` not permitted).
  See Also:
    `getIntervals()`, `clearIntervals()`

### clearIntervals

    public void clearIntervals()

  Clears the intervals for the plot and sends a `PlotChangeEvent` to all registered listeners.

  See Also:
    `addInterval(MeterInterval)`

### getLegendItems

    public LegendItemCollection getLegendItems()

  Returns an item for each interval.

  Specified by:
    `getLegendItems` in interface `LegendItemSource`
  Overrides:
    `getLegendItems` in class `Plot`
  Returns:
    A collection of legend items.

### draw

    public void draw(java.awt.Graphics2D g2,
                     java.awt.geom.Rectangle2D area,
                     java.awt.geom.Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info)

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

  Specified by:
    `draw` in class `Plot`
  Parameters:
    `g2` - the graphics device.
    `area` - the area within which the plot should be drawn.
    `anchor` - the anchor point (`null` permitted).
    `parentState` - the state from the parent plot, if there is one.
    `info` - collects info about the drawing.

### drawArcForInterval

    protected void drawArcForInterval(java.awt.Graphics2D g2,
                                      java.awt.geom.Rectangle2D meterArea,
                                      MeterInterval interval)

  Draws the arc to represent an interval.

  Parameters:
    `g2` - the graphics device.
    `meterArea` - the drawing area.
    `interval` - the interval.

### drawArc

    protected void drawArc(java.awt.Graphics2D g2,
                           java.awt.geom.Rectangle2D area,
                           double minValue,
                           double maxValue,
                           java.awt.Paint paint,
                           java.awt.Stroke stroke)

  Draws an arc.

  Parameters:
    `g2` - the graphics device.
    `area` - the plot area.
    `minValue` - the minimum value.
    `maxValue` - the maximum value.
    `paint` - the paint.
    `stroke` - the stroke.

### fillArc

    protected void fillArc(java.awt.Graphics2D g2,
                           java.awt.geom.Rectangle2D area,
                           double minValue,
                           double maxValue,
                           java.awt.Paint paint,
                           boolean dial)

  Fills an arc on the dial between the given values.

  Parameters:
    `g2` - the graphics device.
    `area` - the plot area.
    `minValue` - the minimum data value.
    `maxValue` - the maximum data value.
    `paint` - the background paint (`null` not permitted).
    `dial` - a flag that indicates whether the arc represents the whole dial.

### valueToAngle

    public double valueToAngle(double value)

  Translates a data value to an angle on the dial.

  Parameters:
    `value` - the value.
  Returns:
    The angle on the dial.

### drawTicks

    protected void drawTicks(java.awt.Graphics2D g2,
                             java.awt.geom.Rectangle2D meterArea,
                             double minValue,
                             double maxValue)

  Draws the ticks that subdivide the overall range.

  Parameters:
    `g2` - the graphics device.
    `meterArea` - the meter area.
    `minValue` - the minimum value.
    `maxValue` - the maximum value.

### drawTick

    protected void drawTick(java.awt.Graphics2D g2,
                            java.awt.geom.Rectangle2D meterArea,
                            double value)

  Draws a tick.

  Parameters:
    `g2` - the graphics device.
    `meterArea` - the meter area.
    `value` - the value.

### drawTick

    protected void drawTick(java.awt.Graphics2D g2,
                            java.awt.geom.Rectangle2D meterArea,
                            double value,
                            boolean label)

  Draws a tick on the dial.

  Parameters:
    `g2` - the graphics device.
    `meterArea` - the meter area.
    `value` - the tick value.
    `label` - a flag that controls whether or not a value label is drawn.

### drawValueLabel

    protected void drawValueLabel(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D area)

  Draws the value label just below the center of the dial.

  Parameters:
    `g2` - the graphics device.
    `area` - the plot area.

### getPlotType

    public java.lang.String getPlotType()

  Returns a short string describing the type of plot.

  Specified by:
    `getPlotType` in class `Plot`
  Returns:
    A string describing the type of plot.

### zoom

    public void zoom(double percent)

  A zoom method that does nothing. Plots are required to support the zoom operation. In the case of a meter plot, it doesn't make sense to zoom in or out, so the method is empty.

  Overrides:
    `zoom` in class `Plot`
  Parameters:
    `percent` - The zoom percentage.

### equals

    public boolean equals(java.lang.Object obj)

  Tests the plot for equality with an arbitrary object. Note that the dataset is ignored for the purposes of testing equality.

  Overrides:
    `equals` in class `Plot`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    A boolean.

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Returns an independent copy (clone) of the plot. The dataset is NOT cloned - both the original and the clone will have a reference to the same dataset.

  Specified by:
    `clone` in interface `org.jfree.util.PublicCloneable`
  Overrides:
    `clone` in class `Plot`
  Returns:
    A clone.
  Throws:
    `java.lang.CloneNotSupportedException` - if some component of the plot cannot be cloned.