使用JFreeChart增强JSP报表
来源:优易学  2011-12-21 16:41:46   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));

  xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());

  xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 14));

  plot.setRenderer(xyitem);

  并引入了一些另外的包,引入包的语句变成:

  <%@ page import = "org.jfree.chart.ChartFactory,

  org.jfree.chart.title.TextTitle,

  org.jfree.data.time.TimeSeries,

  org.jfree.data.time.Month,

  org.jfree.data.time.TimeSeriesCollection,

  org.jfree.chart.plot.XYPlot,

  org.jfree.chart.renderer.xy.XYLineAndShapeRenderer,

  java.awt.Color,

  org.jfree.ui.RectangleInsets,

  java.awt.Font,

  org.jfree.chart.renderer.xy.XYItemRenderer,

  org.jfree.chart.JFreeChart,

  org.jfree.chart.servlet.ServletUtilities,

  org.jfree.chart.labels.*,

  org.jfree.ui.*"%>

  上面两例的曲线图都是但曲线的,有时候我们对两个曲线进行比较,例如对阿蜜果在2006年度和2007年度的blog访问量进行比较,在此种情况下,我们需要在一个曲线图中显示两个曲线。在此种情况下,我们只需要在sample1.jsp的基础上新建一个TimeSeries对象,给它添加数据后,将其添加到TimeSeriesCollection型数据集合对象中,修改后的程序主体部分如下所示:

  //访问量统计时间线

  TimeSeries timeSeries2006 = new TimeSeries("2006年度", Month.class);

  TimeSeries timeSeries2007 = new TimeSeries("2007年度", Month.class);

  //时间曲线数据集合

  TimeSeriesCollection lineDataset = new TimeSeriesCollection();

  //构造数据集合

  timeSeries2006.add(new Month(1, 2007), 7200);

  timeSeries2006.add(new Month(2, 2007), 7000);

  timeSeries2006.add(new Month(3, 2007), 4200);

  timeSeries2006.add(new Month(4, 2007), 8200);

  timeSeries2006.add(new Month(5, 2007), 7300);

  timeSeries2006.add(new Month(6, 2007), 8200);

  timeSeries2006.add(new Month(7, 2007), 9200);

  timeSeries2006.add(new Month(8, 2007), 7300);

  timeSeries2006.add(new Month(9, 2007), 9400);

  timeSeries2006.add(new Month(10, 2007), 7500);

  timeSeries2006.add(new Month(11, 2007), 6600);

  timeSeries2006.add(new Month(12, 2007), 3500);

  timeSeries2007.add(new Month(1, 2007), 10200);

  timeSeries2007.add(new Month(2, 2007), 9000);

  timeSeries2007.add(new Month(3, 2007), 6200);

  timeSeries2007.add(new Month(4, 2007), 8200);

  timeSeries2007.add(new Month(5, 2007), 8200);

  timeSeries2007.add(new Month(6, 2007), 11200);

  timeSeries2007.add(new Month(7, 2007), 13200);

  timeSeries2007.add(new Month(8, 2007), 8300);

  timeSeries2007.add(new Month(9, 2007), 10400);

  timeSeries2007.add(new Month(10, 2007), 12500);

  timeSeries2007.add(new Month(11, 2007), 10600);

  timeSeries2007.add(new Month(12, 2007), 10500);

  lineDataset.addSeries(timeSeries2006);

  lineDataset.addSeries(timeSeries2007);

  JFreeChart chart = ChartFactory.createTimeSeriesChart("访问量统计时间线", "月份", "访问量", lineDataset, true, true, true);

  //设置子标题

  TextTitle subtitle = new TextTitle("2006/2007年度访问量对比", new Font("黑体", Font.BOLD, 12));

  chart.addSubtitle(subtitle);

  //设置主标题

  chart.setTitle(new TextTitle("阿蜜果blog访问量统计", new Font("隶书", Font.ITALIC, 15)));

  chart.setAntiAlias(true);

  五.总结

  本文通过详尽的实例讲述了如何利用JFreeChart开发常用的柱状图、饼图和曲线图。从这些实例中可以看出,JFreeChart是我们开发图表或报表的理想选择,它简单易用,并且容易理解,是我们开发的利刃。

上一页  [1] [2] [3] [4] [5] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训