在给用户演示软件产品时,我们往往发现客户最初更感兴趣的是我们程序的用户界面,而不是程序的功能本身。也正因如此,图形用户界面的应用程序一经出现即广受欢迎,界面友好的Windows操作系统虽然性能很不稳定、安全漏洞百出,仍有无数用户有怨无悔地追随就是一个典型的例子。计算机编程技术发展到今天,遇到数据展示时人们已不满足于枯燥的列表方式,而更喜欢色彩丰富、一目了然的的图形效果。于是,在许多软件产品中会涉及到制图功能。

    本文将介绍是一组功能强大、灵活易用的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 文档创建其他类型的图表。