📄 xyitemrenderer.java
字号:
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * ------------------- * XYItemRenderer.java * ------------------- * (C) Copyright 2001-2004, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Mark Watson (www.markwatson.com); * Sylvain Vieujot; * Focus Computer Services Limited; * Richard Atkinson; * * $Id: XYItemRenderer.java,v 1.30 2004/05/20 02:04:22 mungady Exp $ * * Changes * ------- * 19-Oct-2001 : Version 1, based on code by Mark Watson (DG); * 22-Oct-2001 : Renamed DataSource.java --> Dataset.java etc. (DG); * 13-Dec-2001 : Changed return type of drawItem from void --> Shape. The area returned can * be used as the tooltip region. * 23-Jan-2002 : Added DrawInfo parameter to drawItem(...) method (DG); * 28-Mar-2002 : Added a property change listener mechanism. Now renderers do not have to be * immutable (DG); * 04-Apr-2002 : Added the initialise(...) method (DG); * 09-Apr-2002 : Removed the translated zero from the drawItem method, it can be calculated inside * the initialise method if it is required. Added a new getToolTipGenerator() * method. Changed the return type for drawItem() to void (DG); * 24-May-2002 : Added ChartRenderingInfo the initialise method API (DG); * 25-Jun-2002 : Removed redundant import (DG); * 20-Aug-2002 : Added get/setURLGenerator methods to interface (DG); * 02-Oct-2002 : Fixed errors reported by Checkstyle (DG); * 18-Nov-2002 : Added methods for drawing grid lines (DG); * 17-Jan-2003 : Moved plot classes into a separate package (DG); * 27-Jan-2003 : Added shape lookup table (DG); * 05-Jun-2003 : Added domain and range grid bands (sponsored by Focus Computer Services Ltd) (DG); * 27-Jul-2003 : Added getRangeType() to support stacked XY area charts (RA); * 16-Sep-2003 : Changed ChartRenderingInfo --> PlotRenderingInfo (DG); * 25-Feb-2004 : Replaced CrosshairInfo with CrosshairState. Renamed XYToolTipGenerator * --> XYItemLabelGenerator (DG); * 26-Feb-2004 : Added lots of new methods (DG); * 30-Apr-2004 : Added getRangeExtent() method (DG); * 06-May-2004 : Added methods for controlling item label visibility (DG); * 13-May-2004 : Removed property change listener mechanism (DG); * 18-May-2004 : Added item label font and paint methods (DG); * */package org.jfree.chart.renderer;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Paint;import java.awt.Shape;import java.awt.Stroke;import java.awt.geom.Rectangle2D;import org.jfree.chart.LegendItem;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.event.RendererChangeEvent;import org.jfree.chart.event.RendererChangeListener;import org.jfree.chart.labels.ItemLabelPosition;import org.jfree.chart.labels.XYLabelGenerator;import org.jfree.chart.labels.XYToolTipGenerator;import org.jfree.chart.plot.CrosshairState;import org.jfree.chart.plot.Marker;import org.jfree.chart.plot.PlotRenderingInfo;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.urls.XYURLGenerator;import org.jfree.data.Range;import org.jfree.data.XYDataset;/** * Interface for rendering the visual representation of a single (x, y) item on an * {@link XYPlot}. * <p> * To support cloning charts, it is recommended that renderers implement both the {@link Cloneable} * and <code>PublicCloneable</code> interfaces. * */public interface XYItemRenderer { /** * Initialises the renderer then returns the number of 'passes' through the data that the * renderer will require (usually just one). 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. * * @param g2 the graphics device. * @param dataArea the area inside the axes. * @param plot the plot. * @param dataset the dataset. * @param info an optional info collection object to return data back to the caller. * * @return The number of passes the renderer requires. */ public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset dataset, PlotRenderingInfo info); /** * Returns the number of passes through the data required by the renderer. * * @return The pass count. */ public int getPassCount(); // PAINT /** * Returns the paint used to fill data items as they are drawn. * * @param row the row (or series) index (zero-based). * @param column the column (or category) index (zero-based). * * @return the paint (never <code>null</code>). */ public Paint getItemPaint(int row, int column); /** * Returns the paint used to fill an item drawn by the renderer. * * @param series the series index (zero-based). * * @return the paint (never <code>null</code>). */ public Paint getSeriesPaint(int series); /** * Sets the paint to be used for ALL series, and sends a {@link RendererChangeEvent} to all * registered listeners. If this is <code>null</code>, the renderer will use the paint for * the series. * * @param paint the paint (<code>null</code> permitted). */ public void setPaint(Paint paint); /** * Sets the paint used for a series and sends a {@link RendererChangeEvent} to all registered * listeners. * * @param series the series index (zero-based). * @param paint the paint (<code>null</code> permitted). */ public void setSeriesPaint(int series, Paint paint); /** * Returns the base paint. * * @return the base paint (never <code>null</code>). */ public Paint getBasePaint(); /** * Sets the base paint and sends a {@link RendererChangeEvent} to all registered listeners. * * @param paint the paint (<code>null</code> not permitted). */ public void setBasePaint(Paint paint); // OUTLINE PAINT /** * Returns the paint used to outline data items as they are drawn. * * @param row the row (or series) index (zero-based). * @param column the column (or category) index (zero-based). * * @return the paint (never <code>null</code>). */ public Paint getItemOutlinePaint(int row, int column); /** * Returns the paint used to outline an item drawn by the renderer. * * @param series the series (zero-based index). * * @return the paint (never <code>null</code>). */ public Paint getSeriesOutlinePaint(int series); /** * Sets the paint used for a series outline and sends a {@link RendererChangeEvent} to * all registered listeners. * * @param series the series index (zero-based). * @param paint the paint (<code>null</code> permitted). */ public void setSeriesOutlinePaint(int series, Paint paint); /** * Sets the outline paint for ALL series (optional). * * @param paint the paint (<code>null</code> permitted). */ public void setOutlinePaint(Paint paint); /** * Returns the base outline paint. * * @return the paint (never <code>null</code>). */ public Paint getBaseOutlinePaint(); /** * Sets the base outline paint and sends a {@link RendererChangeEvent} to all * registered listeners. * * @param paint the paint (<code>null</code> not permitted). */ public void setBaseOutlinePaint(Paint paint); // STROKE /** * Returns the stroke used to draw data items. * * @param row the row (or series) index (zero-based). * @param column the column (or category) index (zero-based). * * @return the stroke (never <code>null</code>). */ public Stroke getItemStroke(int row, int column); /** * Returns the stroke used to draw the items in a series. * * @param series the series (zero-based index). * * @return the stroke (never <code>null</code>). */ public Stroke getSeriesStroke(int series); /** * Sets the stroke for ALL series and sends a {@link RendererChangeEvent} to all * registered listeners. * * @param stroke the stroke (<code>null</code> permitted). */ public void setStroke(Stroke stroke); /** * Sets the stroke used for a series and sends a {@link RendererChangeEvent} to * all registered listeners. * * @param series the series index (zero-based). * @param stroke the stroke (<code>null</code> permitted). */ public void setSeriesStroke(int series, Stroke stroke); /** * Returns the base stroke. * * @return the base stroke (never <code>null</code>). */ public Stroke getBaseStroke(); /** * Sets the base stroke. * * @param stroke the stroke (<code>null</code> not permitted). */ public void setBaseStroke(Stroke stroke); // OUTLINE STROKE /** * Returns the stroke used to outline data items. * <p> * The default implementation passes control to the getSeriesOutlineStroke method. * You can override this method if you require different behaviour. * * @param row the row (or series) index (zero-based). * @param column the column (or category) index (zero-based). * * @return the stroke (never <code>null</code>). */ public Stroke getItemOutlineStroke(int row, int column); /** * Returns the stroke used to outline the items in a series. * * @param series the series (zero-based index). * * @return the stroke (never <code>null</code>). */ public Stroke getSeriesOutlineStroke(int series); /** * Sets the outline stroke for ALL series and sends a {@link RendererChangeEvent} to * all registered listeners. * * @param stroke the stroke (<code>null</code> permitted). */ public void setOutlineStroke(Stroke stroke); /** * Sets the outline stroke used for a series and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param series the series index (zero-based). * @param stroke the stroke (<code>null</code> permitted). */ public void setSeriesOutlineStroke(int series, Stroke stroke); /** * Returns the base outline stroke. * * @return the stroke (never <code>null</code>). */ public Stroke getBaseOutlineStroke(); /** * Sets the base outline stroke and sends a {@link RendererChangeEvent} to all * registered listeners. * * @param stroke the stroke (<code>null</code> not permitted). */ public void setBaseOutlineStroke(Stroke stroke); // SHAPE /** * Returns a shape used to represent a data item. * * @param row the row (or series) index (zero-based). * @param column the column (or category) index (zero-based). * * @return the shape (never <code>null</code>). */ public Shape getItemShape(int row, int column); /** * Returns a shape used to represent the items in a series. * * @param series the series (zero-based index). * * @return the shape (never <code>null</code>). */ public Shape getSeriesShape(int series); /** * Sets the shape for ALL series (optional) and sends a {@link RendererChangeEvent} * to all registered listeners. * * @param shape the shape (<code>null</code> permitted). */ public void setShape(Shape shape); /** * Sets the shape used for a series and sends a {@link RendererChangeEvent} to all
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -