Java绘制图表框架JFreeChart入门

这篇博客介绍了如何入门Java图表库JFreeChart。首先,通过官方链接下载JFreeChart 1.0.17及其依赖jcommon-1.0.21,并在MyEclipse中创建web项目进行集成。接着,展示了创建一个处理图表请求的Servlet JFreeChartServlet的步骤,并给出了饼状图、线形图和环形图的测试代码示例,鼓励读者参考提供的demo jar包以获取更多测试案例。
摘要由CSDN通过智能技术生成

1.下载JFreeChart框架
http://www.jfree.org/jfreechart/

这里下载的是最新版本:JFreeChart 1.0.17


2.使用MyEclipse创建一个web项目,名称为jfreechart,导入第1步下载好的jfreechart并将其中的:jfreechart-1.0.17.jar和jcommon-1.0.21.jar 两个jar包,如下图所示:



3.创建处理绘制图表请求的servlet:JFreeChartServlet ,源码如下:

package org.xjh.jfreechart;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartUtilities;
import org.xjh.web.chart.BarChartTest;
import org.xjh.web.chart.LineChartTest;
import org.xjh.web.chart.PieChartTest;
import org.xjh.web.chart.RingChartTest;

/**
 * 处理绘制图表请求
 * 
 * @author xjh
 * 
 */
public class JFreeChartServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//设置编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		
		//根据客户端请求的图表类型,进行相应的图表绘制
		String chartType = request.getParameter("chartType");
		//如果没有提供图表类型
        if(chartType == null || "".equals(chartType.trim())){  
        	//提示错误
        	request.setAttribute("message", "请提供图表类型!");
            request.getRequestDispatcher("/message.jsp").forward(request, response);  
            return;  
        }  
        
		//设置默认图表宽高
		int width = 600;
		int height = 400;
		
		//根据客户端传递过来的宽高设置图表的宽高
		try {
			width = Integer.parseInt(request.getParameter("width"));
			height = Integer.parseInt(request.getParameter("height"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		//设置响应的内容类型为图片形式
		response.setContentType("image/png");
		
		//根据客户端请求的图表类型绘制相应的图表
		if ("bar".equals(chartType)) { //柱状图
			BarChartTest t = new BarChartTest();
			ChartUtilities.writeChartAsPNG(response.getOutputStream(),
					t.createBarChart2D(), width, height, null); //将图表转成图片形式

		} else if ("pie".equals(chartType)) { //饼状图
			PieChartTest t = new PieChartTest();
			ChartUtilities.writeChartAsPNG(response.getOutputStream(),
					t.createPieChart(), width, height, null); 

		} else if ("line".equals(chartType)) { //线条图
			LineChartTest t = new LineChartTest();
			ChartUtilities.writeChartAsPNG(response.getOutputStream(),
					t.createLineChart(), width, height, null);

		} else if ("ring".equals(chartType)) { //环状图
			RingChartTest t = new RingChartTest();
			ChartUtilities.writeChartAsPNG(response.getOutputStream(),
					t.createRingChart(), width, height, null);
		}

	}

}

4.分别创建用于绘制“柱状图”、“饼状图”、“线条图”、“环状图”的测试类。

  4.1 绘制柱状图的类的源码

package org.xjh.web.chart;

import java.awt.Color;
import java.awt.GradientPaint;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.categ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值