資源描述:
《《jfreechart組件在基于jsp的web統(tǒng)計(jì)圖表中的應(yīng)用與實(shí)現(xiàn)》》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、JFreeChart組件在基于JSP的Web統(tǒng)計(jì)圖表中的應(yīng)用與實(shí)現(xiàn)摘要:本文以實(shí)際項(xiàng)目中問題的需求,在分析了JFreeChart組件結(jié)構(gòu)的基礎(chǔ)上,以柱狀圖為例,詳細(xì)介紹了其在JSP中開發(fā)基于Web的統(tǒng)計(jì)圖表的方法。關(guān)鍵詞:JFreeChartWeb圖表JSP1概述創(chuàng)建一個(gè)可以在Web瀏覽器上查看的圖表一般有兩種做法:第一種是使用Applet利用Java本身對圖形的支持來顯示一個(gè)圖表;第二種是直接在Web服務(wù)器端生成好圖表圖片文件后發(fā)送給瀏覽器。第一種方式顯然對于客戶端要求太高,這種方式比較適合局域網(wǎng)的應(yīng)用,而對于因特網(wǎng)的環(huán)境就顯得不太適合了。本文介紹的是一個(gè)基于Java的圖表引擎JFree
2、Chart,他可用在服務(wù)器端產(chǎn)生圖表。JFreeChart是開放源代碼站點(diǎn)SourceForge.net上的一個(gè)Java項(xiàng)目,它主要用來開發(fā)生成各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區(qū)域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。本文主要以柱狀圖為例介紹其使用方法,基于此可以去開發(fā)其他樣式的圖表。2環(huán)境和資源在之前必須先準(zhǔn)備好開發(fā)環(huán)境,因?yàn)槭腔赪eb瀏覽器的圖表展現(xiàn),因此需要一個(gè)Servlet引擎或者是J2EE應(yīng)用服務(wù)器。本文的JSP環(huán)境是Tomcat5.0+jdk1.5.0,具體配置不在此詳述。JFreeChart可以到http://www.j
3、free.org/jfreechart/站點(diǎn)下載,當(dāng)前最新版本是1.0.0,本文以0.9.11版本進(jìn)行調(diào)試,其核心對象類如表1所示。表1JFreeChart中核心的對象類類名類的作用以及簡單描述JFreeChart圖表對象,任何類型的圖表的最終表現(xiàn)形式都是在該對象進(jìn)行一些屬性的定制。JFreeChart引擎本身提供了一個(gè)工廠類用于創(chuàng)建不同類型的圖表對象XXXXXDataset數(shù)據(jù)集對象,用于提供顯示圖表所用的數(shù)據(jù)。根據(jù)不同類型的圖表對應(yīng)著很多類型的數(shù)據(jù)集對象類XXXXXPlot圖表區(qū)域?qū)ο?,基本上這個(gè)對象決定著什么樣式的圖表,創(chuàng)建該對象的時(shí)候需要Axis、Renderer以及數(shù)據(jù)集對象的支
4、持XXXXXAxis用于處理圖表的兩個(gè)軸:縱軸和橫軸XXXXXRenderer負(fù)責(zé)如何顯示一個(gè)圖表對象XXXXXURLGenerator用于生成Web圖表中每個(gè)項(xiàng)目的鼠標(biāo)點(diǎn)擊鏈接XXXXXToolTipGenerator用于生成圖象的幫助提示,不同類型圖表對應(yīng)不同類型的工具提示類解壓縮文件jfreechart-0.9.11,jfreechart-0.9.11.jar和lib/jcommon-0.8.6.jar,lib/gnujaxp.jar,是開發(fā)運(yùn)行需要的文件,把這三個(gè)文件放置到應(yīng)用的lib目錄下。然后在web.xml文件中配置以下內(nèi)容:Di
5、splayChartorg.jfree.chart.servlet.DisplayChart安裝配置完成,就可以編寫程序來生成所需統(tǒng)計(jì)圖。3使用JFreeChart生成柱狀圖表首先看一個(gè)最簡單的例子,圖片中的各類屬性都采用默認(rèn)值。<%@PagecontentType="text/html;charset=GBK"%><%@Pageimport="org.jfree.chart.ChartFactory,org.jfree.chart.JFreeChart,org.jfree.ch
6、art.plot.PlotOrientation,org.jfree.chart.servlet.ServletUtilities,org.jfree.data.DefaultCategoryDataset"%><%DefaultCategoryDatasetdataset=newDefaultCategoryDataset();dataset.addValue(32,"大觀圓","已售");dataset.addValue(18,"大觀圓","待售");dataset.addValue(18,"大觀圓","預(yù)訂");dataset.addValue(28,"大觀圓","認(rèn)購");data
7、set.addValue(8,"大觀圓","預(yù)留");JFreeChartchart=ChartFactory.createBarChart3D("房屋銷量統(tǒng)計(jì)圖","房屋狀態(tài)","銷量",dataset,PlotOrientation.VERTICAL,False,false,false);Stringfilename=ServletUtilities.saveChartAsPNG(chart,300,260,null