本文将介绍是一组功能强大、灵活易用的Java制图API——JFreeChart,使用JFreeChart我们可以极大地增强Java应用程序的高级制图功能,生成多种通用性的图表,包括饼图、柱状图、折线图、甘特图等。对于要在Swing或Web应用程序中加入自制图表的Java开发者而言,JFreeChart无疑是一种理想的选择。
下面以生成最常用的饼图(Pie Chart)为例,介绍一下使用JFreeChart制图的基本过程:
一.获取JFreeChart最新版本
JFreeChart为开放源码自由软件,可以到下述网址免费下载:http://www.jfree.org/jfreechart/,目前最新版本为v1.0.0-pre2版,下载并解压缩后,将其中包含的下述两个.jar文件加入到计算机编译和运行环境的环境变量CLASSPATH中:jcommon-1.0.0-pre2.jar,jfreechart-1.0.0-pre2.jar。
二.开发Java Application,使用JFreeChart API实现创建饼图的功能,源代码如下:
源文件:PieChart.java
import java.io.*;
import java.awt.*;
import org.jfree.chart.*;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.*;
public class PieChart{
public static void main(String[] args){
String title = "梦泽科技员工学历情况统计";
DefaultPieDataset piedata = new DefaultPieDataset();
piedata.setValue("大专", 8.1);
piedata.setValue("大学", 27.6);
piedata.setValue("硕士", 53.2);
piedata.setValue("博士及以上", 19.2);
piedata.setValue("大专以下", 1.9);
JFreeChart chart = ChartFactory.createPieChart(title, piedata, true, true, true);
chart.setTitle(new TextTitle(title, new Font("宋体", Font.BOLD, 25)));
chart.addSubtitle(new TextTitle("最后更新日期:2005年5月19日", new Font("楷书", Font.ITALIC, 18)));
chart.setBackgroundPaint(Color.white);
try {
ChartUtilities.saveChartAsJPEG(new File("PieChart.jpg"), chart, 360, 300);
} catch (IOException exz) {
System.out.print("....Cant′t Create image File");
}
}
}
三.编译运行上述源程序,生成的饼图文件"PieChart.jpg"效果如下:
关于上述应用程序使用的JFreeChart API,可查阅JFreeChart提供的在线API文档,以获取更详细的信息,其URL为http://www.jfree.org/jfreechart/javadoc/。读者可尝试参照上述例程、并借助于API 文档创建其他类型的图表。
需要说明的是,JFreeChart虽是一个开源(open source)项目——API可以免费下载、API文档可以免费在线查阅,其官方开发教程却是要花钱(US$39.95)购买的,相关URL为
http://www.object-refinery.com/jfreechart/guide.html。