Posted on 2010-07-06 17:33
幻海藍夢 閱讀(966)
評論(0) 編輯 收藏 所屬分類:
Java-eclipse,svn 、
網管--拓撲圖
轉自:
http://hi.baidu.com/zh_m_zhou/blog/item/2772d017d9f39059f3de3218.html
作者:pocky
JFreeChart是利用已知數據生成餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤的一個開源項
目。本demo的就是關于如何結合數據生成一個與之對應的餅圖。
1. 環境:
windowsXP,
eclipse3.3,
tomcat6.0,
jfreechart-1.0.12
2,下載。到以下地址下載jfreechart-1.0.12的zip包
http://www.jfree.org/jfreechart/index.html
3.
在eclipse下新建一個web工程,解壓剛下載的zip包,將其中的jcommon-1.0.15.jar和jfreechart-
1.0.12.jar復制到web工程的lib目錄下
4. 新建一個servlet,方法如下:
在web.xml中添加:
??? <servlet>
??? ??? <servlet-name>IndexServlet</servlet-name>
??? ???
<servlet-class>com.demo.IndexServlet</servlet-class>
??? </servlet>
??? <servlet-mapping>
??? ??? <servlet-name>IndexServlet</servlet-name>
??? ??? <url-pattern>/index.do</url-pattern>
??? </servlet-mapping>
新建類,內容如下:
package com.demo;
import java.awt.Font;
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.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
public class IndexServlet extends HttpServlet{
??? /**
???? * 獲取一個演示用的簡單數據集對象
???? * @return
???? */
??? private static DefaultPieDataset getDataSet() {
??????? DefaultPieDataset dataset = new DefaultPieDataset();
??????? dataset.setValue("蘋果",100);
??????? dataset.setValue("梨子",200);
??????? dataset.setValue("葡萄",300);
??????? dataset.setValue("香蕉",400);
??????? dataset.setValue("荔枝",500);
??????? return dataset;
??? }
??? @Override
??? protected void doGet(HttpServletRequest req, HttpServletResponse
resp)
??? ??? ??? throws ServletException, IOException {
??? ??? this.doPost(req,resp);
??? }
??? @Override
??? protected void doPost(HttpServletRequest req, HttpServletResponse
resp)
??? ??? ??? throws ServletException, IOException {
??? ??? resp.setCharacterEncoding("gb2312");
??? ??? resp.setContentType("image/jpeg");
??????? DefaultPieDataset data=getDataSet();
???????
??????? JFreeChart chart=ChartFactory.createPieChart3D("水果產量圖", data,
true, false, false);
???????
??????? Font font = new Font("SimSun", 10, 20);
??????? TextTitle txtTitle = null;
??????? txtTitle = chart.getTitle();
??????? txtTitle.setFont(font);
??????? PiePlot pieplot = (PiePlot)chart.getPlot();
??????? pieplot.setLabelFont(font);
??????? chart.getLegend().setItemFont(font);
???????
??????? try {
??????????? ChartUtilities.writeChartAsJPEG(resp.getOutputStream(),
chart, 600, 400);
??????????? System.out.print("OK");
???????????
//this.getServletContext().getRequestDispatcher("/index2.jsp").forward(req,
resp);
??????? } catch (IOException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? }
??? }
}
5.將工程部署到tomcat下,啟動tomcat,訪問http://server/appName/index.do。至此,一個簡單的demo完
成。
參考文檔:
JFREECHART DEMO1
http://blog.sina.com.cn/s/blog_4ce6c3f80100bydr.html
JFREECHART DEMO2
http://hi.baidu.com/javafanc/blog/item/7da708b544fc16c936d3cade.html
JFREECHART 亂碼
http://topic.csdn.net/u/20071207/11/41ef3b10-043b-496e-8dd6-a501b4c2932c.html