现在的位置: 首页 > 综合 > 正文

使用JFreeChart增强Java绘图功能

2011年05月19日 ⁄ 综合 ⁄ 共 1877字 ⁄ 字号 评论关闭
在给用户演示软件产品时,我们往往发现客户最初更感兴趣的是我们程序的用户界面,而不是程序的功能本身。也正因如此,图形用户界面的应用程序一经出现即广受欢迎,界面友好的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 文档创建其他类型的图表。
需要说明的是,JFreeChart虽是一个开源(open source)项目——API可以免费下载、API文档可以免费在线查阅,其官方开发教程却是要花钱(US$39.95)购买的,相关URL为
http://www.object-refinery.com/jfreechart/guide.html

抱歉!评论已关闭.