零基础学Struts
上QQ阅读APP看书,第一时间看更新

11.1 初涉JFreeChart

11.1.1 JFreeChart简介

本节来学习一款非常好的统计图表生成工具JFreeChart。JFreeChart使用起来非常简单,而且功能非常强大。大部分企业级应用所需的统计图,都能够通过它生成。通过Struts 2整合JFreeChart后,Struts 2能够直接以JFreeChart图表作为表示层直接输出。

下面先来感受一下使用JFreeChart生成的统计图表,如图11.1所示。

图11.1 JFreeChart生成的统计图表

上面展示的是饼图,通过JFreeChart还可以生成其他非常多的统计图表,如柱状图、折线图、面积图等。

11.1.2 下载和安装JFreeChart

登录JFreeChart的官方网站http://www.jfree.org,如图11.2所示,并找到其中的JFreeChart项目选择下载。JFreeChart项目的当前最高版本为1.0.9。

下载JFreeChart时,有如下3个选项,如图11.3所示。

❑ JFreeChart:JFreeChart项目的压缩文件。

❑ Documentation:JFreeChart的API文档。

❑ JCommon:JCommon项目的压缩文件。

图11.2 FreeChart的官方网站

图11.3 FreeChart下载页面

其中JFreeChart选项文件必须下载,如果需要查看JFreeChart项目API文档和参考JCommon项目源代码可以下载下面两个选项文件。解压缩其中的“jfreechart-1.0.9.zip”文件,如图11.4所示。

图11.4 “jfreechart-1.0.9.zip”文件结构

“jfreechart-1.0.9.zip”文件中包含如下文件及目录。

❑ ant:该文件夹用来存放编译JFreeChart项目的“build.xml”文件,同时可以生成JFreeChart项目的API文档。

❑ checkstyle:该文件夹用来存放生成JFreeChart项目的API文档时所需的样式文件。

❑ experimental:该文件夹用来存放JFreeChart项目实验期新增功能的源代码。

❑ lib:该文件夹用来存放JFreeChart项目的JAR文件,同时包括编译和运行JFreeChart项目依赖的第三方JAR文件。

❑ source:该文件夹用来存放JFreeChart项目的源代码。

❑ swt:该文件夹用来存放提供的SWT支持的源文件。

❑ tests:该文件夹用来存放JFreeChart项目单元测试的测试用例文件。

❑ jfreechart-1.0.9-demo.jar:JfreeChart的演示文件,可以直接双击运行“Java(TM) Platform SE binary”。也可以在控制台下使用“java -jar jfreechart-1.0.9-demo.jar”命令来运行。

如果是创建Java应用程序,则只需将lib目录下的“jcommon-1.0.12.jar”和“jfreechart-1.0.9.jar”添加到ClassPath下或者使用Eclipse导入JAR。如果是开发Web应用,则只需将lib目录下的“jcommon-1.0.12.jar”和“jfreechart-1.0.9.jar”复制到Web项目的WEB-INF、lib目录下。

11.1.3 使用JFreeChart生成饼图

下载和安装完成后,就可以使用JFreeChart来生成各种统计图表了。首先新建一个Java程序,并通过JFreeChart生成一个饼图并显示,代码如下所示。

        package net.hncu.jfreechart;
        import org.jfree.chart.ChartFactory;
        import org.jfree.chart.ChartFrame;
        import org.jfree.chart.JFreeChart;
        import org.jfree.data.general.DefaultPieDataset;
        public class TestPieChart {
              public static void main(String[] args) {
                    // 准备数据集
                    DefaultPieDataset dpd = new DefaultPieDataset();
                    // 设置数据
                    dpd.setValue("讲师", 800);
                    dpd.setValue("副教授", 400);
                    dpd.setValue("教授", 100);
                    // 使用工厂类创建饼图
                    JFreeChart chart = ChartFactory.createPieChart(
                              "学校职称人员统计图",
                              dpd,
                              false,
                              false,
                              false);
                    // 创建一个frame来显示图标
                    ChartFrame chartFrame = new ChartFrame("学校职称人员统计图", chart);
                    chartFrame.pack();
                    chartFrame.setVisible(true);
              }
        }

从上面的代码可以看出,首先要准备数据集,当然这些数据也可以是从数据库中取出来的。然后调用ChartFactory类中的createPieChart()方法生成一个JFreeChart实例。最后通过ChartFrame包装这个JFreeChart并显示出来。直接运行该Java程序就可以看到生成的饼图,如图11.5所示。

图11.5 JFreeChart生成饼图