亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

jFreeChart(動態web應用)

系統 1571 0
?

JFreeChart 1.0.2 的動態應用,根據數據庫中的數據生成餅圖:(部分來自網頁)

本文用的是JFreeChart 1.0.2 (根據版本不同需要根據類修改部分代碼)

下載:http://www.jfree.org/jfreechart/index.html

下載后解壓jfreechart-1.0.2.zip,會發現在lib下有幾個jar文件,本文只介紹生成餅圖的例子:

1 ,首先將lib下的jcommon-1.0.5.jar和jfreechart-1.0.2.jar放到你的項目的lib下面,

2 ,一個用于實驗的表:(client)

id

client_name

1

一級分銷商

2

二級分銷商

3

三級分銷商

3 ,建立一個用于查詢數據的類:

package com.drp.statreport;

import java.sql.*;

import java.util.HashMap;

import java.util.Map;

import com.drp.util.DB;// 我的一個用于鏈接數據庫的javabeen

/**

?* 統計報表管理類,采用單例模式

?* @author qiao

?*/

public class StateReportManger {

?? private static StateReportManger intense = new StateReportManger();

?? private StateReportManger(){}

?? public static StateReportManger getIntense(){

???? ?? return intense;

?? }

?? /**

??? * 返回分銷商級別數

??? * @return 返回Map<client_name,數量> eg:("一級分銷商,10","二級分銷商,10")

??? */

?? public Map getClientLevelCount(){

???? ?? Map map = new HashMap();

???? ?? String sql = "select client_name,count(id)?as ?qty from ?client ?group by ?client_name ";

???? ?? Connection conn = null;

???? ?? Statement stmt = null;

???? ?? ResultSet rs = null;

???? ?? try{

???????? ??conn = DB.getConn();// 自己的javabeen鏈接數據庫

???????? ?? stmt = conn.createStatement();

???????? ?? rs = stmt.executeQuery(sql);

???????? ?? while(rs.next()){?? ??

????????????? ?? map.put(rs.getString("client_name"), rs.getInt("qty"));

???????? ?? }

???? ??}catch(SQLException e){

???????? ?? e.printStackTrace();

???? ?? }finally{

???????? ?? DB.close(rs);//javabeen 用于關閉資源

???????? ?? DB.close(stmt);

???????? ?? DB.close(conn);

???? ?? }

???? return map;

?? }

}

4 ,建立一個servlet輸出圖形:

Web.xml 中添加如下配置:

<servlet>

??? <servlet-name>ChartDemoServlet</servlet-name>

??? <servlet-class> com.drp.util.servlet.ChartDemoServlet</servlet-class>

?</servlet>

<servlet-mapping>

??? <servlet-name>ChartDemoServlet</servlet-name>

??? <url-pattern>/servlet/ChartDemoServlet</url-pattern>

?</servlet-mapping>

package com.drp.util.servlet;

import java.io.FileOutputStream;

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.HttpServlet;

import org.jfree.data.*;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.chart.*;

import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

import org.jfree.chart.plot.PiePlot3D;

import com.drp.statreport.StateReportManger;

/**

?* 演示通過servlet直接輸出圖表

?* @author

?*/

public class ChartDemoServlet extends HttpServlet {

???? public void service(ServletRequest req, ServletResponse res)

???????? throws ServletException, IOException

???? {

???????? res.setContentType("image/jpeg");

???????? DefaultPieDataset data = getDataSet();

???????? JFreeChart chart = ChartFactory.createPieChart3D(" 分銷商分布",data,true,false,false);

???????? PiePlot3D plot=(PiePlot3D)chart.getPlot();

???????? // 圖片中顯示百分比:默認方式

???????? //plot.setLabelGenerator(new StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));

???????? // 圖片中顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值, {2} 表示所占比例 ,小數點后兩位

???????? plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

???????? // 圖例顯示百分比:自定義方式, {0} 表示選項, {1} 表示數值, {2} 表示所占比例

???????? plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));

???????? ChartUtilities.writeChartAsJPEG(res.getOutputStream(),

?????????????????? 1.0f,chart,400,300,null);

???? }

???? /**

???? ?* 獲取一個演示用的簡單數據集對象

???? ?* @return

???? ?*/

???? private static DefaultPieDataset getDataSet() {

???????? DefaultPieDataset dataset = new DefaultPieDataset();

???????? Map map = StateReportManger.getIntense().getClientLevelCount(); // 調用getClientLevelCount()得到所有的數據

???????? for(Iterator iter = map.entrySet().iterator();iter.hasNext();){// 遍歷,用到Map的. entrySet ()方法

????????????? Map.Entry entry = (Map.Entry) iter.next();

????????????? dataset.setValue((String)entry.getKey(), Double.parseDouble(String.valueOf(entry.getValue())));// 設置數據

???????? }

???????? return dataset;

???? }

}

5 ,在地址欄輸入 http://localhost:8080/ (你的項目名稱)/servlet/ChartDemoServlet 就可以看到如下圖:
jFreeChart(動態web應用)

jFreeChart(動態web應用)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费国产一区二区三区 | 四虎永久在线免费观看 | aaaa级毛片欧美的 | 国产亚洲精品第一区在线观看 | 在线观看精品91老司机 | 麻豆精品久久精品色综合 | 中文精品爱久久久国产 | 久久久网久久久久合久久久久 | 国产色婷婷精品综合在线手机播放 | 国产高清美女一级a毛片久久 | 久久这里一区二区精品 | 在线不卡视频 | 完整日本特级毛片 | 成人免费观看视频久爱网 | 毛片aaa| 香港a毛片免费全部播放 | 中文字幕国产综合 | 中文字幕久久久久久精 | 精品煌色视频网站在线观看 | 成人免费网站视频www | 国产精品视频分类一区 | 四虎影城 | 免费在线不卡视频 | 99热.| 久草婷婷在线 | 天天爱天天做天天爽天天躁 | 狠狠色丁香久久婷婷综合五月 | 中日韩欧美在线观看 | 中文字幕精品一区二区三区视频 | 国产欧美日韩精品高清二区综合区 | 亚洲欧美另类国产综合 | 亚洲一区中文字幕 | 日韩一区精品视频在线看 | 伊人久久亚洲综合天堂 | 久久精品动漫99精品动漫 | 岛国片欧美一级毛片 | 狠狠操福利视频 | 亚洲在线免费观看 | 午夜免费福利 | 欧美人与动性xxxxbbbb | 精品视自拍视频在线观看 |