如何安装JFreeChart?

junsunchen 2003-08-19 11:10:28
我是一个新手,我已经下载了JFreeChart了,但是不知道在JBuilder9.0里的工程里怎样安装和编译它!请高手说说!帮帮小弟。谢谢!
...全文
102 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sambal 2003-08-22
  • 打赏
  • 举报
回复
up
junsunchen 2003-08-21
  • 打赏
  • 举报
回复
各位高手,请教教小弟吧!!!
junsunchen 2003-08-21
  • 打赏
  • 举报
回复
jb9,不太会用呢!还有下载的是jfreechart-0.9.11.jar,没有jcommon-0.8.5.jar呀!谢谢你
有哪位高手能说一下吗?
junsunchen 2003-08-21
  • 打赏
  • 举报
回复
mingjob(小一号)
不好意思,我是个新手,不知道怎样把下载下来的 JFreeChart 中的jcommon-0.8.5.jar和jfreechart-0.9.10.jar加到你的jb9的project 的classpath里呢!
能具体说给我听吗?
mingjob 2003-08-20
  • 打赏
  • 举报
回复
把下载下来的 JFreeChart 中的jcommon-0.8.5.jar和jfreechart-0.9.10.jar加到你的jb9的project 的classpath里就可以用了,参考下面的饼图例子:

jFreeChart初探 (转贴)
//******************************************
//* author:rautinee *
//* Email:rautinee@21cn.com *
//* http://www.tryitsoft.com *
//*本文可自由传播使用,但请务必保留此信息 *
//******************************************

jFreeChart也许对大家来说很陌生,她是一款免费的、功能强大的统计图生成工具,可以直接生成PNG,JPG等各式的文件
为我们java项目的开发增加了一部利器。她的英文简介
JFreeChart is a free Java class library for generating charts, including:
pie charts;
line charts and horizontal/vertical bar charts (regular and stacked, with optional 3D-effect);
XY plots and scatter plots;
time series, high/low/open/close charts and candle stick charts;
combination charts;
Pareto charts;
Gantt charts;
bubble charts;
wind plots, meter charts and symbol charts;

下载地址:http://www.jfree.org/jfreechart/index.html

正好我最近的一个项目用到她,于是就很粗略的看了一下,现在把它拿出来和大家分享,希望对大家的工作有所
帮助。

本文主要是讲解她在jsp上面的应用。例子采用jsp+javaBean结构实现

准备工作:首先我们需要什么?当然是jFreeChart的package了,可以在她的官方网站上面找到下载链接
http://www.jfree.org/jfreechart/,把包下下来,配置到tomcat当中,然后可以开始我们的Jfreechart之旅
了。

下面我要做的是一个饼状统计图,首先建立javaBean文件

文件名:Tryitshow.java

package com.tryit;

import java.io.*;
import java.awt.Insets;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Locale;
import java.text.NumberFormat;
import javax.servlet.http.HttpSession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.VerticalBarRenderer;
import org.jfree.chart.renderer.StandardXYItemRenderer;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.tooltips.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import org.jfree.chart.TextTitle;
import java.net.URL;

public class Tryitshow
{
public static String generatePieChart(String infoStr, String titles,HttpSession session, PrintWriter pw)
{
String filename = null;
Font font;

try {
// 建立PieDataSet
DefaultPieDataset data = new DefaultPieDataset();
String ss[]=infoStr.split(",");
for (int n=0;n<ss.length;n++)
{
String ssPart[]=ss[n].split("#");
int tt=Integer.parseInt(ssPart[1]);
String mm=ssPart[0];
data.setValue(mm,tt);
}

// 生成chart物件
PiePlot plot = new PiePlot(data);
plot.setInsets(new Insets(0, 5, 5, 5));

plot.setToolTipGenerator(new StandardPieToolTipGenerator());

font=new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小

JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);

TextTitle tt=new TextTitle(titles);
tt.setFont(font);
chart.setBackgroundPaint(java.awt.Color.white);//统计图片的底色
chart.setTitle(tt);

// 把生成的文件写入到临时的目录中
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
//选择存储成png格式的文件,当然你也可以使用saveChartAsJPEG的方法生成jpg图片

// 把image map 写入到 PrintWriter
ChartUtilities.writeImageMap(pw, filename, info);
pw.flush();
}
catch (Exception ex) {
System.out.println("error:"+ex.getMessage());
}
return filename;
}
}


接着是jsp文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import = "com.tryit.Tryitshow" %>
<%@ page import = "java.io.PrintWriter" %>
<%@ page import = "java.text.SimpleDateFormat" %>
<%@ page import = "java.text.ParseException" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.util.Iterator" %>
<%@ page import = "java.util.Locale" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<%
String filename = Tryitshow.generatePieChart("本科#100,专科#200","人才学历信息统计",session, new PrintWriter(out));

String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<BODY>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
</BODY>
</HTML>

ok,大功告成,当然,你可以采用其他方式,比如你可以把DataSet的数据设置在xml文件中,从xml文件读取
统计数据中添加百分比等等,还可以选择生成柱状图、折线图等。

jFreeChart还有很多其他的用法,希望大家可以多多交流。


web.xml文件的配置

<web-app>
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
</web-app>
mingjob 2003-08-20
  • 打赏
  • 举报
回复
把jfreechart-0.9.10.jar和jcommon-0.8.5.jar加到你的jb9工程的classpath里就可以用了。
你可以参考一下别人写的一个饼图的examples:

jFreeChart初探
//******************************************
//* author:rautinee *
//* Email:rautinee@21cn.com *
//* http://www.tryitsoft.com *
//*本文可自由传播使用,但请务必保留此信息 *
//******************************************

jFreeChart也许对大家来说很陌生,她是一款免费的、功能强大的统计图生成工具,可以直接生成PNG,JPG等各式的文件
为我们java项目的开发增加了一部利器。她的英文简介
JFreeChart is a free Java class library for generating charts, including:
pie charts;
line charts and horizontal/vertical bar charts (regular and stacked, with optional 3D-effect);
XY plots and scatter plots;
time series, high/low/open/close charts and candle stick charts;
combination charts;
Pareto charts;
Gantt charts;
bubble charts;
wind plots, meter charts and symbol charts;

下载地址:http://www.jfree.org/jfreechart/index.html

正好我最近的一个项目用到她,于是就很粗略的看了一下,现在把它拿出来和大家分享,希望对大家的工作有所
帮助。

本文主要是讲解她在jsp上面的应用。例子采用jsp+javaBean结构实现

准备工作:首先我们需要什么?当然是jFreeChart的package了,可以在她的官方网站上面找到下载链接
http://www.jfree.org/jfreechart/,把包下下来,配置到tomcat当中,然后可以开始我们的Jfreechart之旅
了。

下面我要做的是一个饼状统计图,首先建立javaBean文件

文件名:Tryitshow.java

package com.tryit;

import java.io.*;
import java.awt.Insets;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.Locale;
import java.text.NumberFormat;
import javax.servlet.http.HttpSession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.VerticalBarRenderer;
import org.jfree.chart.renderer.StandardXYItemRenderer;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.tooltips.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import org.jfree.chart.TextTitle;
import java.net.URL;

public class Tryitshow
{
public static String generatePieChart(String infoStr, String titles,HttpSession session, PrintWriter pw)
{
String filename = null;
Font font;

try {
// 建立PieDataSet
DefaultPieDataset data = new DefaultPieDataset();
String ss[]=infoStr.split(",");
for (int n=0;n<ss.length;n++)
{
String ssPart[]=ss[n].split("#");
int tt=Integer.parseInt(ssPart[1]);
String mm=ssPart[0];
data.setValue(mm,tt);
}

// 生成chart物件
PiePlot plot = new PiePlot(data);
plot.setInsets(new Insets(0, 5, 5, 5));

plot.setToolTipGenerator(new StandardPieToolTipGenerator());

font=new Font("黑体",Font.CENTER_BASELINE,20);//这个地方是设置统计图标题的字体和大小

JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);

TextTitle tt=new TextTitle(titles);
tt.setFont(font);
chart.setBackgroundPaint(java.awt.Color.white);//统计图片的底色
chart.setTitle(tt);

// 把生成的文件写入到临时的目录中
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
//选择存储成png格式的文件,当然你也可以使用saveChartAsJPEG的方法生成jpg图片

// 把image map 写入到 PrintWriter
ChartUtilities.writeImageMap(pw, filename, info);
pw.flush();
}
catch (Exception ex) {
System.out.println("error:"+ex.getMessage());
}
return filename;
}
}


接着是jsp文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import = "com.tryit.Tryitshow" %>
<%@ page import = "java.io.PrintWriter" %>
<%@ page import = "java.text.SimpleDateFormat" %>
<%@ page import = "java.text.ParseException" %>
<%@ page import = "java.util.ArrayList" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.util.Iterator" %>
<%@ page import = "java.util.Locale" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<%
String filename = Tryitshow.generatePieChart("本科#100,专科#200","人才学历信息统计",session, new PrintWriter(out));

String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<BODY>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
</BODY>
</HTML>

ok,大功告成,当然,你可以采用其他方式,比如你可以把DataSet的数据设置在xml文件中,从xml文件读取
统计数据中添加百分比等等,还可以选择生成柱状图、折线图等。

jFreeChart还有很多其他的用法,希望大家可以多多交流。


web.xml文件的配置

<web-app>
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
</web-app>
dwei 2003-08-20
  • 打赏
  • 举报
回复
关注!

^_^
transist 2003-08-20
  • 打赏
  • 举报
回复
只要把jfreechart的几个包引入你所建的工程就可以了使用API了
stonewang 2003-08-19
  • 打赏
  • 举报
回复
参考:
http://www.csdn.net/cnshare/soft/16/16822.shtm
stonewang 2003-08-19
  • 打赏
  • 举报
回复
再有参考这个:
http://www.object-refinery.com/
good luck!
stonewang 2003-08-19
  • 打赏
  • 举报
回复
转:
使用JFreeChart创建图象
文档性质: 转载 发表时间:2003-5-21 快速返回
作者:孤魂一笑(bingo_ge@hotmail.com) 日期:2003-05-08
一:jfreechart介绍
jfreechart是一个免费创建图片的java工具.可以创建如下图形:
饼图(pie charts;)
曲线图(line charts )
柱状图(horizontal/vertical bar charts)
甘特图(Gantt charts; )
XY plots and scatter plots;
time series, high/low/open/close charts and candle stick charts;
combination charts;
Pareto charts;
bubble charts;
wind plots, meter charts and symbol charts;
从以下地址可以看到jfreechart可以创建的图形类型
http://www.jfree.org/jfreechart/samples.html
sourceforge有一个基于jfreechart的项目Cewolf可以很方便的在jsp/servlet中创建图片
jfreechart目前(2003-05-08)版本为0.98
希望得到详细的信息或下载jfreechart请访问如下站点:
http://www.jfree.org/jfreechart/

二:特别说明:
jfreechart是一个开源项目,但是文档是需要40美金去购买的。
还有一个很重要的问题,jfreechart如果使用中文,他使用的默认字体
显示出来的中文会很模糊,你可能需要修改源代码。
下面我就举几个简单的例子说明一下如何使用jfreechart创建图片
在开发中有可能会导入以下的类
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartUtilities;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.TextTitle;
import com.jrefinery.chart.axis.NumberAxis;
import com.jrefinery.chart.plot.CategoryPlot;
import com.jrefinery.chart.plot.PiePlot;
import com.jrefinery.data.Day;
import com.jrefinery.data.DefaultCategoryDataset;
import com.jrefinery.data.DefaultPieDataset;
import com.jrefinery.data.TimeSeries;
import com.jrefinery.data.TimeSeriesCollection;
import com.jrefinery.data.TimeSeriesDataPair;
在0.98以后包由com.jrefinery.*改变为:org.jfree

三:创建饼图
//图片标题
String title = "空调2002年市场占有率";
//设定数据源
DefaultPieDataset piedata = new DefaultPieDataset();
//第一个参数为名称,第二个参数是double数
piedata.setValue("联想", 27.3);
piedata.setValue("长城", 12.2);
piedata.setValue("海尔", 5.5);
piedata.setValue("美的", 17.1);
piedata.setValue("松下", 9.0);
piedata.setValue("科龙", 19.0);
//创建JFreeChart,都使用ChartFactory来创建JFreeChart,很标准的工厂设计模式
JFreeChart chart =
ChartFactory.createPieChart(title, piedata, true, true, true);
//设定图片标题
chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
//chart.addSubtitle(new TextTitle("2002财年分析", new Font("隶书", Font.ITALIC, 12)));
//设定背景
chart.setBackgroundPaint(Color.white);
//chart.s
//饼图使用一个PiePlot
PiePlot pie = (PiePlot)chart.getPlot();
//pie.setSectionLabelType(PiePlot.NAME_AND_PERCENT_LABELS);
pie.setSectionLabelType(PiePlot.NAME_AND_VALUE_LABELS);
//设定显示格式(名称加百分比或数值)
pie.setPercentFormatString("#,###0.0#%");
//设定百分比显示格式
pie.setBackgroundPaint(Color.white);
pie.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
//设定背景透明度(0-1.0之间)
pie.setBackgroundAlpha(0.6f);
//设定前景透明度(0-1.0之间)
pie.setForegroundAlpha(0.90f);
//输出文件到指定目录
String rfname = MathUtil.getRoundCode(12) + ".jpeg";
String fileName = "d:/test/" + rfname;
try {
//可以保存文件为jpg或png格式。
ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600);
//第一个参数为文件名
//第二个参数质量
//第三个参数为哪个chart创建图片
//第四个宽度
//第五个高度
} catch (IOException exz) {
System.out.print("....Cant’t Create image File");
}

其实使用JFreeChart创建图片很简单,不同的的图片类型区别在于设置数据集

四:创建曲线图
// create a default chart based on some sample data...
//曲线图标题
String title = "趋势分析";
//曲线图X轴提示
String domain = "月份走势";
//曲线图Y轴提示
String range = "应收余额";
//曲线图自标题
String subtitleStr = "2003财年分析";
//创建时间数据源
//每一个TimeSeries在图上是一条曲线
TimeSeries ca = new TimeSeries("用友");
for (int i = 1999; i < 2005; i++) {
for (int mon = 0; mon < 12; mon++) {
//ca.add(new Month(mon + 1, i), new Double(500 + Math.random() * 100));
//TimeSeriesDataPair是一个时间点的数值体现
ca.add(
new TimeSeriesDataPair(
new Day(1, mon + 1, i),
new Double(500 + Math.random() * 100)));
}
}

TimeSeries ibm = new TimeSeries("金碟");
for (int i = 1999; i < 2005; i++) {
for (int mon = 0; mon < 12; mon++) {
//ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
ibm.add(
new TimeSeriesDataPair(
new Day(1, mon + 1, i),
new Double(400 - Math.random() * 100)));
}
}

TimeSeries king = new TimeSeries("东软");
for (int i = 1999; i < 2005; i++) {
for (int mon = 0; mon < 12; mon++) {
//ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
king.add(
new TimeSeriesDataPair(
new Day(1, mon + 1, i),
new Double(300 - Math.random() * 100)));
}
}
//时间曲线数据集合
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(ca);
dataset.addSeries(ibm);
dataset.addSeries(king);
//dataset.addSeries(jpy);
//dataset.addSeries(mav);
//时间曲线元素
JFreeChart chart =
ChartFactory.createTimeSeriesChart(
title,
domain,
range,
dataset,
true,
true,
false);
// then customise it a little...
TextTitle subtitle =
new TextTitle(subtitleStr, new Font("黑体", Font.BOLD, 12));
chart.addSubtitle(subtitle);
chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
//pie.setSeriesLabelFont(new Font("黑体", Font.BOLD, 15));
chart.setBackgroundPaint(
new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
//sysout
//输出文件到指定目录
String rfname = MathUtil.getRoundCode(22) + ".jpeg";
String fileName = "d:/test/" + rfname;
try {
//for
//System.out.println();
ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600);
// log.info("....Create image File:" + fileName);
} catch (IOException exz) {
System.out.print("....Cant’t Create image File");
}


五:创建柱状图
String title = "柱状图测试";
String domain = "单位比较";
String range = "数值";
//CategoryDataset data = DemoDatasetFactory.createCategoryDataset();
DefaultCategoryDataset data = new DefaultCategoryDataset();
for (int r = 0; r < 5; r++) {
String rowKey = "单位 [" + (r + 1)+"]" ;
//第一层循环:分析对象
for (int c = 0; c < 6; c++) {
//第二层循环:分析对象在时间点上的数据
String columnKey = "2001年" + (c + 1) + "月";
data.addValue(new Double(r * c + 5), rowKey, columnKey);
}
}

JFreeChart chart =
ChartFactory.createVerticalBarChart(
title,
domain,
range,
data,
true,
true,
false);
// then customise it a little...
chart.setBackgroundPaint(
new GradientPaint(0, 0, Color.white, 1000, 0, Color.red));
chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
plot.setForegroundAlpha(0.9f);
plot.setValueLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
//plot.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
//注意以下代码
NumberAxis verticalAxis = (NumberAxis)plot.getRangeAxis();
verticalAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// 输出文件到指定目录
String rfname = MathUtil.getRoundCode(22) + "b.jpeg";
String fileName = "d:/test/" + rfname;
try {
ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600);
// log.info("....Create image File:" + fileName);
} catch (IOException exz) {
System.out.print("....Cant’t Create image File");
}

六:结束语
个人感觉JFreeChart可以满足大部分图片创建的需要,美中不足的是:对字体的设置做的
不够好,特别是使用中文的时候字体很不清晰。因为这个原因建议你自己去修改他的源代码
最好使用properties文件去设置字体.还有就是文档要钱所以要多花点时间去看源代码。或多
上社区.因为时间等原因我只介绍了三种图片的创建,其他类型的图片可以参考jfreechart提
供的例子。
junsunchen 2003-08-19
  • 打赏
  • 举报
回复
怎么没有知道怎么用吗?
分数不够再加,急用,请高手帮帮忙!!!谢谢

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧