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

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

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

    隨筆-179  評論-666  文章-29  trackbacks-0
    阿里云服務器優惠券
    前段時間,也就是去年,在做一個項目的時候有這樣一個需求,根據用戶在Web頁面上向服務器提交的數據,根據條件從數據庫中取出相應的一系列數據后,要能在web瀏覽器上以圖表的形式顯示結果,形成直觀的對比,于是就要我們實現餅圖,柱圖的動態生成。在網上找了很久,找到了JFreeChart這么一個東西。

    JFreeChart
    是一個開源的 JAVA 項目,它主要用來開發各種各樣的圖表,這些圖表包括:餅圖、柱狀圖 ( 普通柱狀圖以及堆棧柱狀圖 ) 、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。在這些不同式樣的圖表上可以滿足目前商業系統的要求。 JFreeChart 是一種基于 JAVA 語言的圖表開發技術。 JFreeChart 可用于 Servlet JSP Applet Java Appication 環境中,通過 JDBC 可動態顯示任何數據庫數據,結合 Itext 可以輸出至 PDF 文件。

    這個東西正符合我們的需求,于是對他進行了研究并試驗。前些時間懶,一直沒有把研究測試心得寫出來,現在閑下來,整理了一下,搞兩個例子放上來供大家參考吧。


    一、餅圖實例

    jsp頁面:index.jsp

    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
    <%@ page import="org.jfree.chart.*"%>
    <%@ page import="org.jfree.chart.plot.*"%>
    <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
    <%@ page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%>
    <%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
    <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
    <%@ page import="java.io.*"%>

    <HTML> 
    <HEAD> 
    <META http-equiv=Content-Type content="text/html; charset=GBK"> 
    <META NAME="Author" CONTENT="Alpha">
    <TITLE>程序員學歷情況調查表-By Alpha</TITLE> 
    </HEAD> 
    <BODY> 
    <%
                DefaultPieDataset data 
    = new DefaultPieDataset(); 
                
    //數據初始化
                data.setValue(
    "高中以下",380); 
                data.setValue(
    "高中",1620); 
                data.setValue(
    "大專",6100); 
                data.setValue(
    "本科",8310); 
                data.setValue(
    "碩士",3520); 
                data.setValue(
    "博士",180); 
                
                
    //HttpSession session = request.getSession();

                PiePlot3D plot 
    = new PiePlot3D(data);//生成一個3D餅圖 
                
    //plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//設定圖片鏈接 
                JFreeChart chart 
    = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); 
                chart.setBackgroundPaint(java.awt.Color.white);
    //可選,設置圖片背景色 
                chart.setTitle(
    "程序員學歷情況調查表-By Alpha");//可選,設置圖片標題 
                plot.setToolTipGenerator(
    new StandardPieToolTipGenerator()); 
                StandardEntityCollection sec 
    = new StandardEntityCollection(); 
                ChartRenderingInfo info 
    = new ChartRenderingInfo(sec); 
                PrintWriter w 
    = new PrintWriter(out);//輸出MAP信息 
                
    //500是圖片長度,300是圖片高度
                
    //String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session); 
                
    String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session); 
                ChartUtilities.writeImageMap(w,
    "map0",info,false); 

                
    String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
    %> 

    <ALIGN="CENTER"> 
    <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0"> 
    </P> 
    </BODY> 
    </HTML>

    本例效果圖:



    二、柱圖實例

    jsp頁面:index1.jsp

    <% @page contentType = " text/html; charset=GB2312 " %>

    <% @page import = " java.io.FileNotFoundException " %>
    <% @page import = " java.io.FileOutputStream " %>
    <% @page import = " org.apache.commons.logging.Log " %>
    <% @page import = " java.io.IOException " %>

    <% @page import = " org.apache.commons.logging.LogFactory " %>
    <% @page import = " org.jfree.chart.ChartFactory " %>
    <% @page import = " org.jfree.chart.ChartUtilities " %>
    <% @page import = " org.jfree.chart.JFreeChart " %>
    <% @page import = " org.jfree.chart.plot.PlotOrientation " %>
    <% @page import = " org.jfree.data.category.CategoryDataset " %>
    <% @page import = " org.jfree.data.category.DefaultCategoryDataset " %>

    <% @page import = " java.awt.Color " %>
    <% @page import = " org.jfree.chart.renderer.category.BarRenderer3D " %>
    <% @page import = " org.jfree.chart.labels.StandardCategoryItemLabelGenerator " %>
    <% @page import = " org.jfree.chart.axis.CategoryAxis " %>
    <% @page import = " org.jfree.chart.plot.CategoryPlot " %>

    <%
      DefaultCategoryDataset dataset    
    =   new  DefaultCategoryDataset();
      dataset.addValue(
    150 " 北京 " " 蘋果 " );
      dataset.addValue(
    530 " 上海 " " 蘋果 " );
      dataset.addValue(
    160 " 廣州 " " 蘋果 " );
      dataset.addValue(
    120 " 北京 " " 梨子 " );
      dataset.addValue(
    230 " 上海 " " 梨子 " );
      dataset.addValue(
    360 " 廣州 " " 梨子 " );
      dataset.addValue(
    600 " 北京 " " 葡萄 " );
      dataset.addValue(
    430 " 上海 " " 葡萄 " );
      dataset.addValue(
    560 " 廣州 " " 葡萄 " );
      dataset.addValue(
    400 " 北京 " " 香蕉 " );
      dataset.addValue(
    530 " 上海 " " 香蕉 " );
      dataset.addValue(
    660 " 廣州 " " 香蕉 " );
      dataset.addValue(
    500 " 北京 " " 荔枝 " );
      dataset.addValue(
    630 " 上海 " " 荔枝 " );
      dataset.addValue(
    430 " 廣州 " " 荔枝 " );
      
        JFreeChart chart 
    =  ChartFactory.createBarChart3D( " 水果銷量圖統計-By Alpha " , " 水果種類-http://www.tkk7.com/Alpha/ " , " 銷量 " ,dataset,PlotOrientation.VERTICAL, true , false , false );
            chart.setBackgroundPaint(Color.WHITE);
            CategoryPlot plot 
    =  chart.getCategoryPlot();

            CategoryAxis domainAxis 
    =  plot.getDomainAxis();
            
    // domainAxis.setVerticalCategoryLabels( false );
            plot.setDomainAxis(domainAxis);

            BarRenderer3D renderer 
    =   new  BarRenderer3D();
            renderer.setBaseOutlinePaint(Color.BLACK);

            
    // 設置每個地區所包含的平行柱的之間距離
            renderer.setItemMargin(
    0.1 );
            
    // 顯示每個柱的數值,并修改該數值的字體屬性
            renderer.setItemLabelGenerator(
    new  StandardCategoryItemLabelGenerator());
            renderer.setItemLabelsVisible(
    true );
            plot.setRenderer(renderer);

            
    //  設置柱的透明度
            plot.setForegroundAlpha(
    0 .8f);

        ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,
    640 , 400 );
    %>


    本例效果圖:




    三、服務配制

       
    web.xml文件的配制一直困擾了我很久,之前在網上找到的配制都是有問題的,搞得生成出來的圖形顯示不出來,后來自己才把這個配制研究成功,網上的東西也很不可靠,找了N多配制,都是一樣的,同現同樣的問題,看來都是轉來轉去的結果 。

    web.xml 文件

    <? xml version="1.0" encoding="ISO-8859-1" ?>

    <! DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd"
    >

    < web-app >

        
    < servlet >
            
    < servlet-name > DisplayChart </ servlet-name >
            
    < servlet-class > org.jfree.chart.servlet.DisplayChart </ servlet-class >
        
    </ servlet >
        
    < servlet-mapping >
            
    < servlet-name > DisplayChart </ servlet-name >
            
    < url-pattern > /servlet/DisplayChart </ url-pattern >
        
    </ servlet-mapping >

        
    < welcome-file-list >
            
    < welcome-file > index.jsp </ welcome-file >
        
    </ welcome-file-list >
        
    </ web-app >


    補充:(07.5.4更新)
    新增甘特圖的例子與上面例子所有源代碼一起打包提供下載,下載后直接部署就可以運行了。

    點擊下載



    阿里云服務器優惠券
    posted on 2007-01-13 11:08 Alpha 閱讀(22545) 評論(29)  編輯  收藏 所屬分類: Java J2EE JSP

    評論:
    # re: JFreeChart在JSP中的應用實例 2007-01-14 02:13 | lang
    blogjava最近很是死寂,怎么這個文章都敢放到首頁了呢!  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-01-14 23:07 | JooRoo
    挺好的!  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-02-07 15:42 | maybelan
    嗯,真不錯  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-04-18 17:26 | pyrgz
    非常不錯,謝謝樓主
      回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2007-04-20 18:11 | Alpha
    你好,請問怎么實現甘特圖呢?

    我的畢業設計要用到.

    請回復到我的郵箱1919wang@163.com



    非常感謝!!  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-04-29 16:10 | 鳳舞九天
    請問lz,我怎樣把這個程序調試出來,因為我要用到柱狀圖顯示,具體怎么流程沒,lz好人做到底,給我講講吧  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-04-30 13:02 | 蘆媛
    您好!
    我的畢業設計要用那jfreechart做動態圖形顯示包,請你幫我發個簡單的包,謝謝你了,我的郵箱是luyuan1031@sina.com  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-05-04 10:44 | Alpha
    已將這兩個例子的源代碼打包放上來了,另新增甘特圖的例子一起打包,下載后直接部署就可以運行了。
    下載地址:http://www.tkk7.com/Files/Alpha/jfc.rar


      回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-05-22 11:10 | 稻草晃悠
    mu~~~a~~~~表揚戶主,省了我很多工夫,再親  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-05-22 11:30 | 稻草晃悠
    下載包解壓發布,index.jsp和index2.jsp都可以用,但index1.jsp不能用,跑錯:

    ?JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222?€" ?}!1AQa"q2亼?#B繃R佯$3br? %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌僑墑矣哉腫剄巹懺溴驍栝犟蝮趲鲼? ?w!1AQaq"

    (后略)…………………………  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-05-25 10:13 | 吳奔
    多謝大人的帖子,看了好久的網頁終于發現一個可以用的例子了~~
    大大的感謝~~  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-06-10 17:57 | junlien
    有人知道為什么我在tomcat和jbuild 下運行這些例子圖片都顯示不出來是為什么啊,就顯示個方框有個小紅差,就象有時網頁打不開那種效果,有人知道是為什么嗎,樓主幫下忙啊, 萬分感謝!!!  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2007-06-13 13:00 | robert
    哪有jfreechart工具包  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-06-15 23:40 | Alpha
    @junlien

    應該是web.mxl配制有問題,以前我也遇到過此問題。
    檢查一下< url-pattern > /servlet/DisplayChart </ url-pattern >這個配制。

    @robert
    我提供的下載里有包含jfreechart工具包,在lib里面。
      回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2007-07-06 09:47 | andy
    先從資料庫中提取資料生成xml,如何從xml中提取資料,生成動態jfreechart圖形,然后在jsp上顯示,圖形要根據xml生成的表格中的數據動態變化,  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-08-24 08:29 |
    謝謝作者! 這是網上能用的案例. 加20分  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2007-12-10 11:40 | yujw
    為什么我修改了數據,比如把餅圖實例的高中以下程序員人數由380改為3800,生成的圖片還是用原來作者自己的數據?
    不解??
    請指教,謝謝  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2007-12-16 21:17 | 小林
    老大你好,請問餅圖最下面的文字如何修改呢?我找了半天不知道要如何修改,就是有顏色小圈圈旁邊的那些文字如何修改呢??  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2008-01-11 16:04 | 初學者
    謝謝分享!!!  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2008-01-18 15:54 |
    請問樓主如何做甘特圖,下載的沒有啊,如有的話給我發郵件吧,謝謝,
    meiseagull@163.com  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2009-01-12 15:15 | xx
    拋getOutputStream() has already been called for this response異常,是什么一回事呢?  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2010-04-26 16:11 | yangyi336
    能用鼠標點擊圖片 鏈接 到其它地方嗎(如果頁面等等)  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例[未登錄] 2010-05-19 19:02 |
    你這是個靜態的啊?有沒有動態實現的。  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2010-06-29 17:29 | 淘寶網
    JFreeChart 是一個開源的 JAVA 項目,它主要用來開發各種各樣的圖表,這些圖表包括:餅圖、柱狀圖 ( 普通柱狀圖以及堆棧柱狀圖 ) 、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。在這些不同式樣的圖表上可以滿足目前商業系統的要求。 JFreeChart 是一種基于 JAVA 語言的圖表開發技術。 JFreeChart 可用于 Servlet 、 JSP 、 Applet 、 Java Appication 環境中,通過 JDBC 可動態顯示任何數據庫數據,結合 Itext 可以輸出至 PDF 文件。

    這個東西正符合我們的需求,于是對他進行了研究并試驗。前些時間懶,一直沒有把研究測試心得寫出來,現在閑下來,整理了一下,搞兩個例子放上來供大家參考吧。  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2011-06-02 16:22 | za
    不錯  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2011-06-10 13:51 | zhanqitan
    我怎么部署不上去啊!有web的直接給個撒!發送郵箱zhangqitan@hotmail.com  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2012-10-08 12:33 | 小羅@Java
    別在這復制粘貼東西ok? 先自己看看對不對再復制!!!沒寫servlet 你配置web.xml有個毛用啊?   回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2014-03-10 19:51 | 百靈
    非常感謝  回復  更多評論
      
    # re: JFreeChart在JSP中的應用實例 2014-03-13 20:52 | 百靈
    我想問下,這些代碼我copy下來之后,圖片顯示不出來,但是,鼠標劃過時有數據…………  回復  更多評論
      
    主站蜘蛛池模板: 亚洲av无码国产综合专区| 亚洲人成在线播放网站| 亚洲人成高清在线播放| 国产成人免费视频| 久久久久亚洲精品无码系列| 中国国语毛片免费观看视频| 在线a亚洲v天堂网2019无码| 国产高清视频免费在线观看| 国产午夜亚洲精品国产成人小说| 一级毛片试看60分钟免费播放| 久久影院亚洲一区| 国产羞羞的视频在线观看免费 | 好爽又高潮了毛片免费下载| 精品久久久久久亚洲精品| 日韩成全视频观看免费观看高清| 久久人午夜亚洲精品无码区| 亚洲国产综合无码一区二区二三区| 午夜不卡AV免费| 亚洲gv猛男gv无码男同短文| 最近2019免费中文字幕6| 亚洲 欧洲 日韩 综合在线| 日韩精品免费电影| 中文日本免费高清| 18gay台湾男同亚洲男同| 影音先锋在线免费观看| 日本免费精品一区二区三区| 亚洲人成伊人成综合网久久久 | 亚洲日本VA午夜在线影院| 国产一级淫片a视频免费观看| 人与动性xxxxx免费| 亚洲视频免费在线观看| 夫妻免费无码V看片| GOGOGO免费观看国语| 亚洲国产品综合人成综合网站| 四虎成人免费观看在线网址| 精品国产福利尤物免费| 亚洲三级电影网址| xvideos亚洲永久网址| 无人在线观看免费高清| 亚洲男人的天堂久久精品| 亚洲国产精品人人做人人爽|