Ordinary hut

          人間一福地,勝似天仙宮
          posts - 61, comments - 50, trackbacks - 0, articles - 1
          創建柱狀圖
          1 引入jFreechart的包
          jcommon-1.0.15.jar
          jfreechart-1.0.12.jar
          jfreechart-1.0.12-experimental.jar

          2 在web.xml中加入
              <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>

          3 在jsp或者servlet或者action中寫
               // 創建一個柱狀圖
              DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
              
          // 數據裝入
              for(int i=0;i<list.size();i++)
              {
              
              Item item =(Item)list.get(i);
              
              dataSet.setValue(Item.getRating(), "testName", Item.getTime());
              }
              JFreeChart chart 
          = ChartFactory.createBarChart("統計圖","ratings""time", dataSet, PlotOrientation.VERTICAL,falsetruefalse);
              
          try{
              
              String filename = ServletUtilities.saveChartAsPNG(chart, 500300null, session);
              
              String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
              
              request.setAttribute("graphURL",graphURL);

             
          catch (Exception e){
              }


          4 在頁面引入
              <img src="<%= request.getAttribute("graphURL") %>">
          這種方式會生成臨時圖片文件,默認是不對其進行清理的,所以要手工進行處理
          對于臨時文件的清除,jfreechart提供了一個實現了HttpSessionBindingListener的類ChartDeleter,
          里面有個valueUnbound方法,這個方法是在session執行remove的時候被自動執行,
          所以我們只需要在頁面剛進入的時候調用
          session.removeAttribute("JFreeChart_Deleter");
          這樣會刪除當前session之前生成的圖表。

          還有一種方法是用流輸出的方式,直接,即:
          注釋掉上面的try中的代碼,加入如下代碼
          ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);

          然后在顯示頁面引入該jsp或者servlet
              <img src="<%=request.getContextPath()%>/servlet">

          簡單的折線圖就是把createBarChart方法換成createLineChart方法,高級特性請參見JFreeChart的文檔

          Feedback

          # re: jFreeChart 在jsp頁上實現簡單的折線圖、柱狀圖[未登錄]  回復  更多評論   

          2014-03-20 14:07 by s
          sdsafsd的施工的風格吧

          # re: jFreeChart 在jsp頁上實現簡單的折線圖、柱狀圖[未登錄]  回復  更多評論   

          2014-03-20 14:07 by s
          是的更符合規范

          # re: jFreeChart 在jsp頁上實現簡單的折線圖、柱狀圖[未登錄]  回復  更多評論   

          2014-09-25 19:04 by 等待
          灌灌灌灌灌

          # re: jFreeChart 在jsp頁上實現簡單的折線圖、柱狀圖[未登錄]  回復  更多評論   

          2014-09-25 19:04 by 等待
          2222
          主站蜘蛛池模板: 栾城县| 永济市| 马鞍山市| 台湾省| 凤凰县| 本溪市| 锡林浩特市| 罗平县| 馆陶县| 仁怀市| 凌源市| 黄山市| 清新县| 宁晋县| 凌海市| 宁化县| 乐平市| 遂宁市| 乌兰县| 嵊州市| 卓资县| 东海县| 微博| 班戈县| 连平县| 吉安县| 西贡区| 敦煌市| 梁平县| 土默特右旗| 丁青县| 含山县| 保山市| 大余县| 大英县| 北辰区| 金湖县| 十堰市| 炎陵县| 陆良县| 弥渡县|