当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

使用JFreeChart制作图形

发表于: 2013-05-05   作者:chinrui   来源:转载   浏览次数:
摘要: 使用JFreeChart制作图形 第一步:下载相应的组件   JFreeChart下载:http://www.jfree.org/jfreechart/download.html 第二步:解压到相应的目录     F:\Program Files\jfreechart-1.0.14\jfreechart-1.0.14-demo.jar 第三步:
使用JFreeChart制作图形

第一步:下载相应的组件
  JFreeChart下载:http://www.jfree.org/jfreechart/download.html
第二步:解压到相应的目录
    F:\Program Files\jfreechart-1.0.14\jfreechart-1.0.14-demo.jar
第三步:引入相关的jar包
    jcommon-1.0.17.jar
    jfreechart-1.0.14.jar
    WEB-INF――lib目录下引入上面的两个包
第四步:编写数据处理文件
package yuan.rui.love.servlet;

import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

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

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

import yuan.rui.love.util.DB;

/**
 * Servlet implementation class for Servlet: ShowProductSales
 *
 */
 public class ShowProductSales extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
   
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public ShowProductSales() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		getDataSet();
		JFreeChart category_chart = ChartFactory.createBarChart3D(
										"产品销量图", 
										"产品名", 
										"销量", 
										categoryDataset, 
										PlotOrientation.VERTICAL, 
										true, 
										false, 
										false);
		JFreeChart pie_chart = ChartFactory.createPieChart(
										"产品销量图",
										pieDataset,
										true,
										true,
										false);
		FileOutputStream category_jpg = null;
		FileOutputStream pie_jpg = null;
		try {
			category_jpg = new FileOutputStream(
					"D:\\eclipse_java_ Programs\\Shopping\\WebContent\\admin\\images\\reports\\productsales.jpg");
			ChartUtilities.writeChartAsJPEG(category_jpg,1.0f,category_chart,400,300,null);
			
			pie_jpg = new FileOutputStream(
					"D:\\eclipse_java_ Programs\\Shopping\\WebContent\\admin\\images\\reports\\productsales_pie.jpg");
			ChartUtilities.writeChartAsJPEG(pie_jpg,1.0f,pie_chart,400,300,null);
			
			request.getRequestDispatcher("admin/showproductsales.jsp").forward(request, response);
		} finally {
			try {
				pie_jpg.close();
				category_jpg.close();
			} catch(Exception e) {}
		}
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}   
	
	private DefaultCategoryDataset categoryDataset = null;
	private DefaultPieDataset pieDataset = null;
	
	public void getDataSet() {
		categoryDataset = new DefaultCategoryDataset();
		pieDataset = new DefaultPieDataset();
		//dataset.addValue(100, "北京", "苹果");
		
		Connection conn = null;
		ResultSet rs = null;
		try {
			conn = DB.getConn();
			String sql = "select p.name , sum(pcount) from product p join salesitem si on (p.id = si.productid) group by p.id";
			rs = DB.getResultSet(conn, sql);
			StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  
			//设置标题字体  
			standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));  
			//设置图例的字体  
			standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));  
			//设置轴向的字体  
			standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));  
			//应用主题样式  
			ChartFactory.setChartTheme(standardChartTheme);  
			while(rs.next()) {
				categoryDataset.addValue(rs.getInt(2), "", rs.getString(1));
				pieDataset.setValue(rs.getString(1),rs.getDouble(2));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DB.close(rs);
			DB.close(conn);
		}
	}
}

第五步:应用以上程序进行数据处理,绘制图形,存储到相应路径,并在网页上展示
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
	<img src="<%=request.getContextPath() %>/admin/images/reports/productsales.jpg">
	<br/>
	<img src="<%=request.getContextPath() %>/admin/images/reports/productsales_pie.jpg">
</center>

</body>
</html>

使用JFreeChart制作图形

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
JFreeChart一个免费的Java图表库.JFreeChart支持饼图(2D和3D),条形图(水平和垂直,整齐堆叠),线图,散
前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载:http://
前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载:http://
前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载:http://
JFreeChart一个免费的Java图表库.JFreeChart支持饼图(2D和3D),条形图(水平和垂直,整齐堆叠),线图,散
JFreeChart使用 所需jar包: /jfreechart-1.0.13.jar/jcommon-1.0.16.jar/struts2-jfreechart-plugin
前言 关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showc
前言 关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showc
前言 关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showc
前言 关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showc
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号