`
chinrui
  • 浏览: 97681 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

使用JFreeChart制作图形

阅读更多
使用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>
分享到:
评论

相关推荐

    Java程序中用JFreeChart制作图形报表

    ### Java程序中使用JFreeChart制作图形报表 在Java开发领域中,数据可视化是一个非常重要的环节,它能够帮助用户更直观地理解数据背后的含义。本文将详细介绍如何在Java程序中利用JFreeChart库来制作图形报表。 ##...

    JFreeChart制作图形报表

    《JFreeChart制作图形报表》 本文将详细介绍如何使用JFreeChart库创建图形报表,以满足特定的需求。首先,我们从需求分析开始。 在我们的示例中,需求源于一个有趣的场景:通过量化日常感情生活,为决策提供数据...

    java使用JFreeChart制作柱形图

    JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化为易于理解的图形。 在描述中提到的3D柱形图,它通过添加深度感来增加视觉效果,使得数据的表现...

    使用JFreeChart制作各种美丽动人的统计图表

    在本篇文章中,我们将深入探讨如何使用JFreeChart库来制作这些美丽的图表,并了解其核心功能和应用场景。 首先,JFreeChart的设计目标是提供一个可扩展的框架,能够生成多种类型的图表,包括但不限于: 1. 条形图...

    JFreechart 图形制作API

    JFreechart 图形制作API 非常优秀的图表制作工具 和其他开源框架很好的集成

    利用jfreechart制作仪表盘

    在Java应用中,JFreeChart通过简单的API调用即可生成复杂的图表,使得开发人员无需深入了解图形渲染机制。 为了制作仪表盘,我们需要先理解JFreeChart中的` DialPlot `类,它是仪表盘的核心组件。`DialPlot`允许...

    JFreeChartDemo java图形报表

    总之,JFreeChartDemo是Java开发者学习数据可视化和报表制作的一个宝贵资源,它涵盖了JFreeChart库的多个核心功能,通过实例化和运行这个Demo,你可以深入理解如何利用Java进行高效的数据图表开发。

    JFreeChart+Eclipse

    JFreeChart是由SourceForge.net托管的开源项目,专注于为Java开发者提供图形解决方案,适用于各种应用场合,如应用程序、Applet、Servlet或JSP。除了JFreeChart本身,其生态系统还包括JFreeReport(报表解决方案)、...

    JFreeChart查询数据库生成图形报表

    这个项目只针对与初次接触JFreeChart或者想用JFreeChart制作简单的图形报表的朋友们,项目里只写了饼状图、柱状图、折线图的实现,想要具体学习JFreeChart可以参考官方文档,我也是照着官方文档写的。

    jfreechart1.0.6_pdf

    以BarChart为例,介绍如何使用JFreeChart制作图表。首先,需要导入JFreeChart相关的包,包括`org.jfree.chart`和`org.jfree.data.category`,这两个包分别负责图表的展示和数据集的管理。 创建一个简单的销售数据...

    jfreechart雷达图

    在本篇中,我们将深入探讨如何利用JFreeChart来制作雷达图(也称为蜘蛛图或星形图),并理解其相关知识点。 1. **JFreeChart简介** JFreeChart是一个开源项目,其目标是提供一个可以免费使用的高质量图表API。它...

    jfreechart中文文档和jar包

    它在IT行业中被广泛应用于数据分析、报表制作以及Web应用中,为开发者提供了一种简单且灵活的方式来生成高质量的图形。 在描述中提到的"中文文档"和"jar包",意味着这个压缩包包含JFreeChart的中文说明文档和实际的...

    jfreechart图表制作案例

    **JFreeChart 图表制作案例** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。本案例将深入探讨如何使用 JFreeChart 创建高...

    JFreeChart图表制作工具

    JFreeChart是一款在Java平台上广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图、甘特图、3D图表等,使得开发者能够方便地在应用程序中生成高质量的图形展示数据。在Java应用开发中...

    JFreeChart API 手册 CHM版本

    这个CHM版本的手册是JFreeChart API 的详细参考,对于使用Java进行图形化数据展示的开发者来说,是一份非常重要的资源。 **JFreeChart API** JFreeChart API 提供了一系列的类和接口,用于创建、配置和显示各种...

    jfreechart+cewolf的架包

    JFreeChart和Cewolf是两个强大的开源库,它们共同为开发者提供了丰富的图形生成和展示能力。本文将详细介绍这两个库的功能、使用方法以及如何结合它们来创建高效的报表系统。 **JFreeChart简介** JFreeChart是一个...

Global site tag (gtag.js) - Google Analytics