<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    官網:http://www.jfree.org/
    主要步驟:
        1.導包
            activation.jar
            jcommon-1.0.8.jar
            jfreechart-1.0.6.jar
        2.設定數據源
        3.向數據源中插值
        4.使用ChartFactory來創建JFreeChart
            JFreeChart chart = ChartFactory.create...
        5.創建文件
        
        注意:只支持png和JPEG格式

    JFreeChart可以創建的所有圖形:
    http://www.jfree.org/jfreechart/samples.html

    以餅狀圖為例
    1:將生成圖片保存至某個文件夾中
    代碼如下:

     1 package com.test;
     2 
     3 import java.awt.Color;
     4 import java.awt.Font;
     5 import java.io.File;
     6 import java.io.IOException;
     7 import java.util.Hashtable;
     8 import java.util.Map;
     9 import org.jfree.chart.ChartFactory;
    10 import org.jfree.chart.ChartUtilities;
    11 import org.jfree.chart.JFreeChart;
    12 import org.jfree.chart.title.TextTitle;
    13 import org.jfree.data.general.DefaultKeyedValuesDataset;
    14 
    15 /**
    16  * 生成餅狀圖,并將該圖保存到指定文件夾中
    17  * @author Ying-er
    18  * @time 2010-2-5上午11:32:27
    19  */
    20 public class TestMain{
    21     public static void main(String[] args){
    22         Map<String,Integer> ht=new Hashtable<String,Integer>();
    23         ht.put("美國"139800);
    24         ht.put("日本"52900);
    25         ht.put("德國"32800);
    26         ht.put("中國"30100);
    27         ht.put("英國"25700);
    28         ht.put("法國"25200);
    29         ht.put("意大利"20900);
    30         ht.put("西班牙"14100);
    31         ht.put("加拿大"13600);
    32         ht.put("俄羅斯"11400);
    33         
    34         float sum=0;
    35         for(Integer i:ht.values()){
    36             sum+=i;
    37         }
    38         
    39         // 設定數據源
    40         DefaultKeyedValuesDataset piedata = new DefaultKeyedValuesDataset();
    41 
    42         // 向數據源中插值,第一個參數為名稱,第二個參數是double數
    43         for(String nation:ht.keySet()){
    44             
    45             String temp = String.valueOf(((float)ht.get(nation))/sum*100);
    46             
    47             if(temp.indexOf(".")>=0){
    48                 String xiaoshu ="00";
    49                 String[] arr = temp.split("[.]");
    50                 if(arr[1].length()>1){
    51                     xiaoshu =  arr[1].substring(02);
    52                 }
    53                 temp = arr[0]+"."+xiaoshu;
    54             }
    55             piedata.setValue(nation+" "+temp+"%", ((float)ht.get(nation))/sum*100);
    56         }
    57         
    58         // 使用ChartFactory來創建JFreeChart
    59         JFreeChart chart = ChartFactory.createPieChart("2007世界總GDP排名", piedata, true,
    60                 truetrue);
    61         
    62         // 設定圖片標題
    63         chart.setTitle(new TextTitle("2007世界總GDP排名"new Font("隸書", Font.ITALIC, 15)));
    64 
    65         // 設定背景
    66         chart.setBackgroundPaint(Color.white);
    67         
    68         /**
    69          * 設定保存的路徑
    70          */
    71         String rfName = "test.jpeg";
    72         String fileName = "d:/"+rfName;
    73         try {
    74             /**
    75              * 第一個參數為文件名
    76              * 第二個參數為質量,取值從0f-1.0f之間
    77              * 第三個參數為哪個chart創建圖片
    78              * 4:寬度
    79              * 5:高度
    80              */
    81             /**
    82              * 注意:只支持JPEG和png格式
    83              */
    84             ChartUtilities.saveChartAsJPEG(new File(fileName), 0.9f, chart, 600,600);
    85         } catch (IOException e) {
    86             // TODO Auto-generated catch block
    87             e.printStackTrace();
    88         }
    89     }
    90 }

    2.將生成圖片放到頁面上
    所執行Servlet代碼:
      1 package com.linying.action;
      2 
      3 import java.awt.Color;
      4 import java.awt.Font;
      5 import java.util.Hashtable;
      6 import java.util.Map;
      7 
      8 import javax.servlet.RequestDispatcher;
      9 import javax.servlet.ServletException;
     10 import javax.servlet.http.HttpServlet;
     11 import javax.servlet.http.HttpServletRequest;
     12 import javax.servlet.http.HttpServletResponse;
     13 
     14 import org.jfree.chart.ChartFactory;
     15 import org.jfree.chart.JFreeChart;
     16 import org.jfree.chart.servlet.ServletUtilities;
     17 import org.jfree.chart.title.TextTitle;
     18 import org.jfree.data.general.DefaultKeyedValuesDataset;
     19 
     20 /**
     21  * 餅圖
     22  * @author Ying-er
     23  *
     24  * @time 2009-11-12下午08:03:39
     25  *
     26  */
     27 public class PieChartServlet extends HttpServlet {
     28     private static final long serialVersionUID = 56890894234786L;
     29 
     30     public void doPost(HttpServletRequest request, HttpServletResponse response)
     31             throws ServletException, java.io.IOException {
     32         request.setCharacterEncoding("UTF-8");
     33 
     34         Map<String,Integer> ht=new Hashtable<String,Integer>();
     35         ht.put("美國"139800);
     36         ht.put("日本"52900);
     37         ht.put("德國"32800);
     38         ht.put("中國"30100);
     39         ht.put("英國"25700);
     40         ht.put("法國"25200);
     41         ht.put("意大利"20900);
     42         ht.put("西班牙"14100);
     43         ht.put("加拿大"13600);
     44         ht.put("俄羅斯"11400);
     45         
     46         float sum=0;
     47         for(Integer i:ht.values()){
     48             sum+=i;
     49         }
     50         
     51         // 設定數據源
     52         DefaultKeyedValuesDataset piedata = new DefaultKeyedValuesDataset();
     53 
     54         // 向數據源中插值,第一個參數為名稱,第二個參數是double數
     55         for(String nation:ht.keySet()){
     56             
     57             String temp = String.valueOf(((float)ht.get(nation))/sum*100);
     58             
     59             if(temp.indexOf(".")>=0){
     60                 String xiaoshu ="00";
     61                 String[] arr = temp.split("[.]");
     62                 if(arr[1].length()>1){
     63                     xiaoshu =  arr[1].substring(02);
     64                 }
     65                 temp = arr[0]+"."+xiaoshu;
     66             }
     67             piedata.setValue(nation+" "+temp+"%", ((float)ht.get(nation))/sum*100);
     68         }
     69         
     70         // 使用ChartFactory來創建JFreeChart
     71         JFreeChart chart = ChartFactory.createPieChart("2007世界總GDP排名", piedata, true,
     72                 truetrue);
     73         
     74         // 設定圖片標題
     75         chart.setTitle(new TextTitle("2007世界總GDP排名"new Font("隸書", Font.ITALIC, 15)));
     76 
     77         // 設定背景
     78         chart.setBackgroundPaint(Color.white);
     79         
     80         // 創建文件并將圖片地址傳遞到頁面
     81         String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
     82                 null, request.getSession());
     83         String graphURL = request.getContextPath()
     84                 + "/displayChart?filename=" + filename;
     85         request.setAttribute("graphURL", graphURL);
     86         
     87         // 標識
     88         request.setAttribute("msg""餅圖效果");
     89 
     90         // 頁面轉向
     91         RequestDispatcher dispatcher = request
     92                 .getRequestDispatcher("/web/page/chart.jsp");
     93         dispatcher.forward(request, response);
     94         return;
     95     }
     96 
     97     public void doGet(HttpServletRequest request, HttpServletResponse response)
     98             throws ServletException, java.io.IOException {
     99         doPost(request, response);
    100     }
    101 }
    102 
    chart.jsp代碼:
     1 <%@ page contentType="text/html; charset=UTF-8"%>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     3 <html>
     4 <head>
     5 <title>JFreeChart圖表效果</title>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <link rel="stylesheet" rev="stylesheet" href="web/css/style.css"
     8     type="text/css" />
     9 </head>
    10 
    11 <body>
    12     <div id="bodyDiv">
    13         <div id="header">
    14             <jsp:include page="/web/page/branch/header.jsp"/>
    15         </div>
    16         <div id="sidebar">
    17             <jsp:include page="/web/page/branch/sidebar.jsp"/>
    18         </div>
    19         <div id="content">
    20             <table border=0 align="center">
    21             <%                
    22                 out.print("<tr>");
    23                 String graphURL=(String)request.getAttribute("graphURL");            
    24                 out.print("<td colspan=4 align=\"center\"><img src=\""+graphURL+"\"/></td>");
    25                 out.print("</tr>");                
    26             %>
    27             </table>
    28         </div>
    29         <div id="footer">
    30             <jsp:include page="/web/page/branch/footer.jsp"/>
    31         </div>
    32     </div>
    33 </body>
    34 </html>
    35 
    36 
    37 
    38 



    posted on 2010-02-05 15:27 Ying-er 閱讀(580) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 九九九精品成人免费视频| 成年免费大片黄在线观看岛国 | 国内自产拍自a免费毛片| 亚洲一区二区电影| 精品视频一区二区三区免费| 国产亚洲精品免费视频播放 | jizz免费在线观看| 高清在线亚洲精品国产二区| 亚洲AV无码AV吞精久久| 成全视成人免费观看在线看| 亚洲黄片手机免费观看| 国产日韩在线视频免费播放| 亚洲色婷婷一区二区三区| 人妻在线日韩免费视频| 久久九九亚洲精品| 91热久久免费精品99| 亚洲成人午夜电影| 99在线视频免费观看视频| 亚洲精品自偷自拍无码| 亚洲AV网站在线观看| aa毛片免费全部播放完整| 亚洲产国偷V产偷V自拍色戒| 久久不见久久见免费视频7| 亚洲人xxx日本人18| 国产人妖ts在线观看免费视频| 免费人成网站永久| 亚洲春色在线视频| 久久午夜夜伦鲁鲁片免费无码影视 | 国产精品偷伦视频观看免费| 亚洲黑人嫩小videos| 100000免费啪啪18免进| 精品无码专区亚洲| 亚洲日韩精品一区二区三区| 免费无遮挡无码永久视频| 亚洲AV综合色区无码二区爱AV| 国产精品无码一二区免费| 成av免费大片黄在线观看| 亚洲第一成年人网站| 成人爱做日本视频免费| 日韩电影免费在线观看网站| 亚洲区精品久久一区二区三区|