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
          主站蜘蛛池模板: 海盐县| 金塔县| 攀枝花市| 大城县| 兰溪市| 桃园市| 肇庆市| 秦皇岛市| 青海省| 孟州市| 苍溪县| 和林格尔县| 伊宁市| 黑龙江省| 定兴县| 调兵山市| 中江县| 安仁县| 涟源市| 临澧县| 安化县| 龙山县| 孝义市| 收藏| 宾阳县| 新津县| 东平县| 辉南县| 甘德县| 蓬莱市| 定州市| 琼海市| 临江市| 潮安县| 启东市| 焦作市| 德格县| 和硕县| 南和县| 巴彦淖尔市| 确山县|