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

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

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

    我的Blog我做主^_^

    走向一條通往JAVA的不歸路...

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      64 隨筆 :: 68 文章 :: 77 評論 :: 0 Trackbacks
    前段時間,也就是去年,在做一個項目的時候有這樣一個需求,根據(jù)用戶在Web頁面上向服務(wù)器提交的數(shù)據(jù),根據(jù)條件從數(shù)據(jù)庫中取出相應(yīng)的一系列數(shù)據(jù)后,要能在web瀏覽器上以圖表的形式顯示結(jié)果,形成直觀的對比,于是就要我們實現(xiàn)餅圖,柱圖的動態(tài)生成。在網(wǎng)上找了很久,找到了JFreeChart這么一個東西。

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

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



    一、餅圖實例

    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 > 程序員學(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); // 生成一個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è)置圖片標題?
    ????????????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;
    %> ?

    < P? 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( " 水果銷量圖統(tǒng)計-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è)置每個地區(qū)所包含的平行柱的之間距離
    ????????renderer.setItemMargin(
    0.1 );
    ????????
    // 顯示每個柱的數(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)上找到的配制都是有問題的,搞得生成出來的圖形顯示不出來,后來自己才把這個配制研究成功,網(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 >

    ?



    posted on 2007-01-13 17:48 java_蟈蟈 閱讀(1476) 評論(3)  編輯  收藏 所屬分類: JAVA

    評論

    # re: JFreeChart在JSP中的應(yīng)用實例 [轉(zhuǎn)] 2009-03-16 10:23 fush76@tom.com
    您好,為什么我運行后報以下錯?


    org.apache.jasper.JasperException: Unable to compile class for JSP:


    An error occurred at line: 7 in the generated java file
    Only a type can be imported. org.jfree.data.general.DefaultPieDataset resolves to a package

    An error occurred at line: 19 in the jsp file: /test_999.jsp
    DefaultPieDataset cannot be resolved to a type
      回復(fù)  更多評論
      

    # re: JFreeChart在JSP中的應(yīng)用實例 [轉(zhuǎn)] 2009-03-18 13:09 java_蟈蟈
    @fush76@tom.com
    仔細看看錯誤~~~
      回復(fù)  更多評論
      

    # re: JFreeChart在JSP中的應(yīng)用實例 [轉(zhuǎn)] 2012-10-19 19:48 胡小軍的師姐
    @fush76@tom.com
    下載JFreeChart 導(dǎo)入JAR包  回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲一区二区女搞男| 亚洲&#228;v永久无码精品天堂久久| 国产在线国偷精品产拍免费| 亚洲妇熟XXXX妇色黄| 一区免费在线观看| 国产免费69成人精品视频| 亚洲色少妇熟女11p| 91精品国产免费| 久久久亚洲欧洲日产国码农村| 亚洲乱码在线卡一卡二卡新区| 84pao强力永久免费高清| 亚洲av无码精品网站| 中国一级特黄的片子免费 | 久艹视频在线免费观看| a级亚洲片精品久久久久久久 | 久久久久久亚洲精品| 国产午夜精品理论片免费观看 | 91在线亚洲精品专区| 精品成人免费自拍视频| 在线视频免费国产成人| 亚洲中文无码亚洲人成影院| 亚洲人成电影网站免费| 亚洲国产精品一区二区久久hs| 国产精品美女免费视频观看| 成年在线网站免费观看无广告| 亚洲人成综合在线播放| 在线观看免费黄色网址| 亚洲色成人网站WWW永久| 国产性生大片免费观看性| 国产亚洲精品资源在线26u| 亚洲成AV人影片在线观看| 免费鲁丝片一级观看| 久久亚洲精品无码av| 久热中文字幕在线精品免费| 中文字幕亚洲一区二区va在线| 亚洲精品黄色视频在线观看免费资源| 久久精品国产亚洲一区二区三区| 国产免费久久精品99久久| 亚洲国产婷婷六月丁香| 久久免费视频精品| 亚洲成人免费电影|