/* --------------------- * XYAreaChartDemo3.java * --------------------- * (C) Copyright 2005, by Object Refinery Limited. * * Changes * ------- * 22-Dec-2005 : Version 1 (DG); * * * Found on: * http://www.jfree.org/phpBB2/viewtopic.php?f=10&t=15596 */ package org.novelang.nhovestone.report; import java.awt.Color; import java.awt.GradientPaint; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.labels.StandardXYToolTipGenerator; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.data.time.Day; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /** * A simple demonstration application showing how to create an area chart with * a date axis for the domain values. * * @see EnhancedXYAreaRenderer */ public class XYAreaChartDemo3 extends ApplicationFrame { /** * Creates a new demo. * * @param title the frame title. */ public XYAreaChartDemo3( final String title ) { super( title ); final JPanel chartPanel = createDemoPanel(); chartPanel.setPreferredSize( new java.awt.Dimension( 500, 270 ) ); setContentPane( chartPanel ); } private static XYDataset createDataset() { final TimeSeries series1 = new TimeSeries( "Random 1" ); double value = 0.0; Day day = new Day(); for( int i = 0 ; i < 50 ; i++ ) { value = value + Math.random() - 0.5; series1.add( day, value ); day = ( Day ) day.next(); } final TimeSeriesCollection dataset = new TimeSeriesCollection( series1 ); return dataset; } /** * Creates a chart. * * @param dataset the dataset. * @return The chart. */ private static JFreeChart createChart( final XYDataset dataset ) { final JFreeChart chart = ChartFactory.createXYAreaChart( "XY Area Chart Demo 3", "Time", "Value", dataset, PlotOrientation.VERTICAL, false, // legend false, // tool tips false // URLs ); final XYPlot plot = ( XYPlot ) chart.getPlot(); final EnhancedXYAreaRenderer renderer = new EnhancedXYAreaRenderer(); plot.setRenderer( 0, renderer ); renderer.setSeriesFillPaint( 0, new GradientPaint( 0f, 0f, Color.green, 0f, 0f, Color.blue ) ); renderer.setOutline( true ); renderer.setSeriesOutlinePaint( 0, Color.black ); final ValueAxis domainAxis = new DateAxis( "Time" ); domainAxis.setLowerMargin( 0.0 ); domainAxis.setUpperMargin( 0.0 ); plot.setDomainAxis( domainAxis ); plot.setForegroundAlpha( 0.5f ); renderer.setToolTipGenerator( new StandardXYToolTipGenerator( StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, new SimpleDateFormat( "d-MMM-yyyy" ), new DecimalFormat( "#,##0.00" ) ) ); return chart; } /** * Creates a panel for the demo. * * @return A panel. */ public static JPanel createDemoPanel() { return new ChartPanel( createChart( createDataset() ) ); } /** * Starting point for the demonstration application. * * @param args ignored. */ public static void main( final String[] args ) { final XYAreaChartDemo3 demo = new XYAreaChartDemo3( "XY Area Chart Demo 3" ); demo.pack(); RefineryUtilities.centerFrameOnScreen( demo ); demo.setVisible( true ); } }