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

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

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

    隨筆-179  評(píng)論-666  文章-29  trackbacks-0
    阿里云服務(wù)器優(yōu)惠券
    前段時(shí)間,也就是去年,在做一個(gè)項(xiàng)目的時(shí)候有這樣一個(gè)需求,根據(jù)用戶在Web頁(yè)面上向服務(wù)器提交的數(shù)據(jù),根據(jù)條件從數(shù)據(jù)庫(kù)中取出相應(yīng)的一系列數(shù)據(jù)后,要能在web瀏覽器上以圖表的形式顯示結(jié)果,形成直觀的對(duì)比,于是就要我們實(shí)現(xiàn)餅圖,柱圖的動(dòng)態(tài)生成。在網(wǎng)上找了很久,找到了JFreeChart這么一個(gè)東西。

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

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


    一、餅圖實(shí)例

    jsp頁(yè)面: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>程序員學(xué)歷情況調(diào)查表-By Alpha</TITLE> 
    </HEAD> 
    <BODY> 
    <%
                DefaultPieDataset data 
    = new DefaultPieDataset(); 
                
    //數(shù)據(jù)初始化
                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);//生成一個(gè)3D餅圖 
                
    //plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//設(shè)定圖片鏈接 
                JFreeChart chart 
    = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); 
                chart.setBackgroundPaint(java.awt.Color.white);
    //可選,設(shè)置圖片背景色 
                chart.setTitle(
    "程序員學(xué)歷情況調(diào)查表-By Alpha");//可選,設(shè)置圖片標(biāo)題 
                plot.setToolTipGenerator(
    new StandardPieToolTipGenerator()); 
                StandardEntityCollection sec 
    = new StandardEntityCollection(); 
                ChartRenderingInfo info 
    = new ChartRenderingInfo(sec); 
                PrintWriter w 
    = new PrintWriter(out);//輸出MAP信息 
                
    //500是圖片長(zhǎng)度,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>

    本例效果圖:



    二、柱圖實(shí)例

    jsp頁(yè)面: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( " 水果銷量圖統(tǒng)計(jì)-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);

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

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

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


    本例效果圖:




    三、服務(wù)配制

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

    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 >


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

    點(diǎn)擊下載



    阿里云服務(wù)器優(yōu)惠券
    posted on 2007-01-13 11:08 Alpha 閱讀(22543) 評(píng)論(29)  編輯  收藏 所屬分類: Java J2EE JSP

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

    我的畢業(yè)設(shè)計(jì)要用到.

    請(qǐng)回復(fù)到我的郵箱1919wang@163.com



    非常感謝!!  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2007-04-29 16:10 | 鳳舞九天
    請(qǐng)問lz,我怎樣把這個(gè)程序調(diào)試出來,因?yàn)槲乙玫街鶢顖D顯示,具體怎么流程沒,lz好人做到底,給我講講吧  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2007-04-30 13:02 | 蘆媛
    您好!
    我的畢業(yè)設(shè)計(jì)要用那jfreechart做動(dòng)態(tài)圖形顯示包,請(qǐng)你幫我發(fā)個(gè)簡(jiǎn)單的包,謝謝你了,我的郵箱是luyuan1031@sina.com  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2007-05-04 10:44 | Alpha
    已將這兩個(gè)例子的源代碼打包放上來了,另新增甘特圖的例子一起打包,下載后直接部署就可以運(yùn)行了。
    下載地址:http://www.tkk7.com/Files/Alpha/jfc.rar


      回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2007-05-22 11:10 | 稻草晃悠
    mu~~~a~~~~表?yè)P(yáng)戶主,省了我很多工夫,再親  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2007-05-22 11:30 | 稻草晃悠
    下載包解壓發(fā)布,index.jsp和index2.jsp都可以用,但index1.jsp不能用,跑錯(cuò):

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

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

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

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

    這個(gè)東西正符合我們的需求,于是對(duì)他進(jìn)行了研究并試驗(yàn)。前些時(shí)間懶,一直沒有把研究測(cè)試心得寫出來,現(xiàn)在閑下來,整理了一下,搞兩個(gè)例子放上來供大家參考吧。  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2011-06-02 16:22 | za
    不錯(cuò)  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2011-06-10 13:51 | zhanqitan
    我怎么部署不上去啊!有web的直接給個(gè)撒!發(fā)送郵箱zhangqitan@hotmail.com  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2012-10-08 12:33 | 小羅@Java
    別在這復(fù)制粘貼東西ok? 先自己看看對(duì)不對(duì)再?gòu)?fù)制!!!沒寫servlet 你配置web.xml有個(gè)毛用啊?   回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2014-03-10 19:51 | 百靈
    非常感謝  回復(fù)  更多評(píng)論
      
    # re: JFreeChart在JSP中的應(yīng)用實(shí)例 2014-03-13 20:52 | 百靈
    我想問下,這些代碼我copy下來之后,圖片顯示不出來,但是,鼠標(biāo)劃過時(shí)有數(shù)據(jù)…………  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲国产精品无码久久久秋霞1| 久香草视频在线观看免费| 好久久免费视频高清| 日本一道在线日本一道高清不卡免费 | 羞羞视频网站免费入口| 18禁男女爽爽爽午夜网站免费| 亚洲人成网站在线观看青青| 亚洲熟妇av午夜无码不卡| 91av在线免费视频| 亚洲精品无码av人在线观看| 国产精品亚洲一区二区三区在线观看| 99久久久精品免费观看国产| 亚洲AV无码成人网站久久精品大 | 亚洲国产成人AV网站| 4399好看日本在线电影免费| 亚洲国产成人久久精品动漫| 九九免费精品视频在这里| 日本特黄特色aa大片免费| 亚洲一区二区三区在线网站| 最近2019免费中文字幕视频三| 日本红怡院亚洲红怡院最新| 国产精品免费久久| 免费一级毛片在线播放| 亚洲1区2区3区精华液| 免费无码肉片在线观看| 亚洲免费观看网站| **实干一级毛片aa免费| 亚洲一区二区在线视频| 老司机69精品成免费视频| 亚洲精品成人网站在线观看 | 亚洲日产乱码一二三区别| 欧美三级在线电影免费| 亚洲妓女综合网99| 亚洲视频免费在线看| 亚洲伊人tv综合网色| 日日麻批免费40分钟无码| 亚洲AV乱码一区二区三区林ゆな| 免费一区二区无码东京热| 亚洲成a人片在线观看无码专区| 成人影片一区免费观看| 亚洲高清国产拍精品26U|