Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.jfree.chart.JFreeChart
public class JFreeChart
extends java.lang.Object
implements Drawable, TitleChangeListener, PlotChangeListener, Serializable, Cloneable
Title
objects
(which often includes the chart's legend), a Plot
and a
Dataset
(the plot in turn manages a
domain axis and a range axis).
You should use a ChartPanel
to display a chart in a GUI.
The ChartFactory
class contains static methods for creating
'ready-made' charts.
ChartPanel
, ChartFactory
, Title
, Plot
Field Summary | |
static Image |
|
static int |
|
static float |
|
static Paint |
|
static Font |
|
static ProjectInfo |
|
Constructor Summary | |
| |
| |
|
Method Summary | |
void |
|
void |
|
void |
|
void |
|
void |
|
Object |
|
BufferedImage |
|
BufferedImage |
|
BufferedImage |
|
BufferedImage |
|
void |
|
void |
|
void |
|
protected EntityCollection | |
boolean |
|
void |
|
boolean |
|
Image |
|
int |
|
float |
|
Paint |
|
Paint |
|
Stroke |
|
CategoryPlot |
|
LegendTitle |
|
LegendTitle |
|
RectangleInsets |
|
Plot |
|
RenderingHints |
|
Title |
|
int |
|
List |
|
Object |
|
TextTitle |
|
XYPlot | |
void |
|
boolean |
|
boolean |
|
static void |
|
protected void |
|
protected void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
public static final Image DEFAULT_BACKGROUND_IMAGE
The default background image.
public static final int DEFAULT_BACKGROUND_IMAGE_ALIGNMENT
The default background image alignment.
public static final float DEFAULT_BACKGROUND_IMAGE_ALPHA
The default background image alpha.
- Field Value:
- 0.0f
public static final Paint DEFAULT_BACKGROUND_PAINT
The default background color.
public JFreeChart(String title, Font titleFont, Plot plot, boolean createLegend)
Creates a new chart with the given title and plot. ThecreateLegend
argument specifies whether or not a legend should be added to the chart.
Note that theChartFactory
class contains a range of static methods that will return ready-made charts, and often this is a more convenient way to create charts than using this constructor.
- Parameters:
title
- the chart title (null
permitted).titleFont
- the font for displaying the chart title (null
permitted).plot
- controller of the visual representation of the data (null
not permitted).createLegend
- a flag indicating whether or not a legend should be created for the chart.
public JFreeChart(String title, Plot plot)
Creates a new chart with the given title and plot. A default font (@link DEFAULT_TITLE_FONT) is used for the title, and the chart will have a legend added automatically.
Note that theChartFactory
class contains a range of static methods that will return ready-made charts, and often this is a more convenient way to create charts than using this constructor.
- Parameters:
title
- the chart title (null
permitted).plot
- the plot (null
not permitted).
public JFreeChart(Plot plot)
Creates a new chart based on the supplied plot. The chart will have a legend added automatically, but no title (although you can easily add one later).
Note that theChartFactory
class contains a range of static methods that will return ready-made charts, and often this is a more convenient way to create charts than using this constructor.
- Parameters:
plot
- the plot (null
not permitted).
public void addChangeListener(ChartChangeListener listener)
Registers an object for notification of changes to the chart.
- Parameters:
listener
- the listener (null
not permitted).
public void addLegend(LegendTitle legend)
Adds a legend to the plot and sends aChartChangeEvent
to all registered listeners.
- Parameters:
legend
- the legend (null
not permitted).
- See Also:
removeLegend()
public void addProgressListener(ChartProgressListener listener)
Registers an object for notification of progress events relating to the chart.
- Parameters:
listener
- the object being registered.
public void addSubtitle(Title subtitle)
Adds a chart subtitle, and notifies registered listeners that the chart has been modified.
- Parameters:
subtitle
- the subtitle (null
not permitted).
- See Also:
getSubtitle(int)
public void clearSubtitles()
Clears all subtitles from the chart and sends aChartChangeEvent
to all registered listeners.
- See Also:
addSubtitle(Title)
public Object clone() throws CloneNotSupportedException
Clones the object, and takes care of listeners. Note: caller shall register its own listeners on cloned graph.
- Returns:
- A clone.
public BufferedImage createBufferedImage(int width, int height)
Creates and returns a buffered image into which the chart has been drawn.
- Parameters:
width
- the width.height
- the height.
- Returns:
- A buffered image.
public BufferedImage createBufferedImage(int imageWidth, int imageHeight, double drawWidth, double drawHeight, ChartRenderingInfo info)
Creates and returns a buffered image into which the chart has been drawn.
- Parameters:
imageWidth
- the image width.imageHeight
- the image height.drawWidth
- the width for drawing the chart (will be scaled to fit image).drawHeight
- the height for drawing the chart (will be scaled to fit image).info
- optional object for collection chart dimension and entity information.
- Returns:
- A buffered image.
public BufferedImage createBufferedImage(int width, int height, int imageType, ChartRenderingInfo info)
Creates and returns a buffered image into which the chart has been drawn.
- Parameters:
width
- the width.height
- the height.imageType
- the image type.info
- carries back chart state information (null
permitted).
- Returns:
- A buffered image.
public BufferedImage createBufferedImage(int width, int height, ChartRenderingInfo info)
Creates and returns a buffered image into which the chart has been drawn.
- Parameters:
width
- the width.height
- the height.info
- carries back chart state information (null
permitted).
- Returns:
- A buffered image.
public void draw(Graphics2D g2, Rectangle2D area)
Draws the chart on a Java 2D graphics device (such as the screen or a printer). This method is the focus of the entire JFreeChart library.
- Parameters:
g2
- the graphics device.area
- the area within which the chart should be drawn.
public void draw(Graphics2D g2, Rectangle2D chartArea, Point2D anchor, ChartRenderingInfo info)
Draws the chart on a Java 2D graphics device (such as the screen or a printer). This method is the focus of the entire JFreeChart library.
- Parameters:
g2
- the graphics device.chartArea
- the area within which the chart should be drawn.anchor
- the anchor point (in Java2D space) for the chart (null
permitted).info
- records info about the drawing (null means collect no info).
public void draw(Graphics2D g2, Rectangle2D area, ChartRenderingInfo info)
Draws the chart on a Java 2D graphics device (such as the screen or a printer). This method is the focus of the entire JFreeChart library.
- Parameters:
g2
- the graphics device.area
- the area within which the chart should be drawn.info
- records info about the drawing (null means collect no info).
protected EntityCollection drawTitle(Title t, Graphics2D g2, Rectangle2D area, boolean entities)
Draws a title. The title should be drawn at the top, bottom, left or right of the specified area, and the area should be updated to reflect the amount of space used by the title.
- Parameters:
t
- the title (null
not permitted).g2
- the graphics device (null
not permitted).area
- the chart area, excluding any existing titles (null
not permitted).entities
- a flag that controls whether or not an entity collection is returned for the title.
- Returns:
- An entity collection for the title (possibly
null
).
public boolean equals(Object obj)
Tests this chart for equality with another object.
- Parameters:
obj
- the object (null
permitted).
- Returns:
- A boolean.
public void fireChartChanged()
Sends a defaultChartChangeEvent
to all registered listeners. This method is for convenience only.
public boolean getAntiAlias()
Returns a flag that indicates whether or not anti-aliasing is used when the chart is drawn.
- Returns:
- The flag.
- See Also:
setAntiAlias(boolean)
public Image getBackgroundImage()
Returns the background image for the chart, ornull
if there is no image.
- Returns:
- The image (possibly
null
).
- See Also:
setBackgroundImage(Image)
public int getBackgroundImageAlignment()
Returns the background image alignment. Alignment constants are defined in theorg.jfree.ui.Align
class in the JCommon class library.
- Returns:
- The alignment.
- See Also:
setBackgroundImageAlignment(int)
public float getBackgroundImageAlpha()
Returns the alpha-transparency for the chart's background image.
- Returns:
- The alpha-transparency.
- See Also:
setBackgroundImageAlpha(float)
public Paint getBackgroundPaint()
Returns the paint used for the chart background.
- Returns:
- The paint (possibly
null
).
- See Also:
setBackgroundPaint(Paint)
public Paint getBorderPaint()
Returns the paint used to draw the chart border (if visible).
- Returns:
- The border paint.
- See Also:
setBorderPaint(Paint)
public Stroke getBorderStroke()
Returns the stroke used to draw the chart border (if visible).
- Returns:
- The border stroke.
- See Also:
setBorderStroke(Stroke)
public CategoryPlot getCategoryPlot()
Returns the plot cast as aCategoryPlot
. NOTE: if the plot is not an instance ofCategoryPlot
, then aClassCastException
is thrown.
- Returns:
- The plot.
- See Also:
getPlot()
public LegendTitle getLegend()
Returns the legend for the chart, if there is one. Note that a chart can have more than one legend - this method returns the first.
- Returns:
- The legend (possibly
null
).
- See Also:
getLegend(int)
public LegendTitle getLegend(int index)
Returns the nth legend for a chart, ornull
.
- Parameters:
index
- the legend index (zero-based).
- Returns:
- The legend (possibly
null
).
- See Also:
addLegend(LegendTitle)
public RectangleInsets getPadding()
Returns the padding between the chart border and the chart drawing area.
- Returns:
- The padding (never
null
).
- See Also:
setPadding(RectangleInsets)
public Plot getPlot()
Returns the plot for the chart. The plot is a class responsible for coordinating the visual representation of the data, including the axes (if any).
- Returns:
- The plot.
public RenderingHints getRenderingHints()
Returns the collection of rendering hints for the chart.
- Returns:
- The rendering hints for the chart (never
null
).
- See Also:
setRenderingHints(RenderingHints)
public Title getSubtitle(int index)
Returns a chart subtitle.
- Parameters:
index
- the index of the chart subtitle (zero based).
- Returns:
- A chart subtitle.
- See Also:
addSubtitle(Title)
public int getSubtitleCount()
Returns the number of titles for the chart.
- Returns:
- The number of titles for the chart.
- See Also:
getSubtitles()
public List getSubtitles()
Returns the list of subtitles for the chart.
- Returns:
- The subtitle list (possibly empty, but never
null
).
- See Also:
setSubtitles(List)
public Object getTextAntiAlias()
Returns the current value stored in the rendering hints table forRenderingHints.KEY_TEXT_ANTIALIASING
.
- Returns:
- The hint value (possibly
null
).
- Since:
- 1.0.5
- See Also:
setTextAntiAlias(Object)
public TextTitle getTitle()
Returns the main chart title. Very often a chart will have just one title, so we make this case simple by providing accessor methods for the main title. However, multiple titles are supported - see theaddSubtitle(Title)
method.
- Returns:
- The chart title (possibly
null
).
- See Also:
setTitle(TextTitle)
public XYPlot getXYPlot()
Returns the plot cast as anXYPlot
. NOTE: if the plot is not an instance ofXYPlot
, then aClassCastException
is thrown.
- Returns:
- The plot.
- See Also:
getPlot()
public void handleClick(int x, int y, ChartRenderingInfo info)
Handles a 'click' on the chart. JFreeChart is not a UI component, so some other object (e.g. ChartPanel) needs to capture the click event and pass it onto the JFreeChart object. If you are not using JFreeChart in a client application, then this method is not required (and hopefully it doesn't get in the way).
- Parameters:
x
- x-coordinate of the click (in Java2D space).y
- y-coordinate of the click (in Java2D space).info
- contains chart dimension and entity information.
public boolean isBorderVisible()
Returns a flag that controls whether or not a border is drawn around the outside of the chart.
- Returns:
- A boolean.
- See Also:
setBorderVisible(boolean)
public boolean isNotify()
Returns a flag that controls whether or not change events are sent to registered listeners.
- Returns:
- A boolean.
- See Also:
setNotify(boolean)
public static void main(String[] args)
Prints information about JFreeChart to standard output.
- Parameters:
args
- no arguments are honored.
protected void notifyListeners(ChartChangeEvent event)
Sends aChartChangeEvent
to all registered listeners.
- Parameters:
event
- information about the event that triggered the notification.
protected void notifyListeners(ChartProgressEvent event)
Sends aChartProgressEvent
to all registered listeners.
- Parameters:
event
- information about the event that triggered the notification.
public void plotChanged(PlotChangeEvent event)
Receives notification that the plot has changed, and passes this on to registered listeners.
- Specified by:
- plotChanged in interface PlotChangeListener
- Parameters:
event
- information about the plot change.
public void removeChangeListener(ChartChangeListener listener)
Deregisters an object for notification of changes to the chart.
- Parameters:
listener
- the listener (null
not permitted)
public void removeLegend()
Removes the first legend in the chart and sends aChartChangeEvent
to all registered listeners.
- See Also:
getLegend()
public void removeProgressListener(ChartProgressListener listener)
Deregisters an object for notification of changes to the chart.
- Parameters:
listener
- the object being deregistered.
public void removeSubtitle(Title title)
Removes the specified subtitle and sends aChartChangeEvent
to all registered listeners.
- Parameters:
title
- the title.
- See Also:
addSubtitle(Title)
public void setAntiAlias(boolean flag)
Sets a flag that indicates whether or not anti-aliasing is used when the chart is drawn. Anti-aliasing usually improves the appearance of charts, but is slower.
- Parameters:
flag
- the new value of the flag.
- See Also:
getAntiAlias()
public void setBackgroundImage(Image image)
Sets the background image for the chart and sends aChartChangeEvent
to all registered listeners.
- Parameters:
image
- the image (null
permitted).
- See Also:
getBackgroundImage()
public void setBackgroundImageAlignment(int alignment)
Sets the background alignment. Alignment options are defined by theorg.jfree.ui.Align
class.
- Parameters:
alignment
- the alignment.
- See Also:
getBackgroundImageAlignment()
public void setBackgroundImageAlpha(float alpha)
Sets the alpha-transparency for the chart's background image. Registered listeners are notified that the chart has been changed.
- Parameters:
alpha
- the alpha value.
- See Also:
getBackgroundImageAlpha()
public void setBackgroundPaint(Paint paint)
Sets the paint used to fill the chart background and sends aChartChangeEvent
to all registered listeners.
- Parameters:
paint
- the paint (null
permitted).
- See Also:
getBackgroundPaint()
public void setBorderPaint(Paint paint)
Sets the paint used to draw the chart border (if visible).
- Parameters:
paint
- the paint.
- See Also:
getBorderPaint()
public void setBorderStroke(Stroke stroke)
Sets the stroke used to draw the chart border (if visible).
- Parameters:
stroke
- the stroke.
- See Also:
getBorderStroke()
public void setBorderVisible(boolean visible)
Sets a flag that controls whether or not a border is drawn around the outside of the chart.
- Parameters:
visible
- the flag.
- See Also:
isBorderVisible()
public void setNotify(boolean notify)
Sets a flag that controls whether or not listeners receiveChartChangeEvent
notifications.
- Parameters:
notify
- a boolean.
- See Also:
isNotify()
public void setPadding(RectangleInsets padding)
Sets the padding between the chart border and the chart drawing area, and sends aChartChangeEvent
to all registered listeners.
- Parameters:
padding
- the padding (null
not permitted).
- See Also:
getPadding()
public void setRenderingHints(RenderingHints renderingHints)
Sets the rendering hints for the chart. These will be added (using the Graphics2D.addRenderingHints() method) near the start of the JFreeChart.draw() method.
- Parameters:
renderingHints
- the rendering hints (null
not permitted).
- See Also:
getRenderingHints()
public void setSubtitles(List subtitles)
Sets the title list for the chart (completely replaces any existing titles).
- Parameters:
subtitles
- the new list of subtitles (null
not permitted).
- See Also:
getSubtitles()
public void setTextAntiAlias(Object val)
Sets the value in the rendering hints table forRenderingHints.KEY_TEXT_ANTIALIASING
and sends aChartChangeEvent
to all registered listeners.
- Parameters:
val
- the new value (null
permitted).
- Since:
- 1.0.5
- See Also:
getTextAntiAlias()
,setTextAntiAlias(boolean)
public void setTextAntiAlias(boolean flag)
Sets the value in the rendering hints table forRenderingHints.KEY_TEXT_ANTIALIASING
to eitherRenderingHints.VALUE_TEXT_ANTIALIAS_ON
orRenderingHints.VALUE_TEXT_ANTIALIAS_OFF
, then sends aChartChangeEvent
to all registered listeners.
- Parameters:
flag
-
- Since:
- 1.0.5
- See Also:
getTextAntiAlias()
,setTextAntiAlias(Object)
public void setTitle(String text)
Sets the chart title and sends aChartChangeEvent
to all registered listeners. This is a convenience method that ends up calling thesetTitle(TextTitle)
method. If there is an existing title, its text is updated, otherwise a new title using the default font is added to the chart. Iftext
isnull
the chart title is set tonull
.
- Parameters:
text
- the title text (null
permitted).
- See Also:
getTitle()
public void setTitle(TextTitle title)
Sets the main title for the chart and sends aChartChangeEvent
to all registered listeners. If you do not want a title for the chart, set it tonull
. If you want more than one title on a chart, use theaddSubtitle(Title)
method.
- Parameters:
title
- the title (null
permitted).
- See Also:
getTitle()
public void titleChanged(TitleChangeEvent event)
Receives notification that a chart title has changed, and passes this on to registered listeners.
- Specified by:
- titleChanged in interface TitleChangeListener
- Parameters:
event
- information about the chart title change.