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
          主站蜘蛛池模板: 县级市| 论坛| 九龙坡区| 高安市| 甘谷县| 博爱县| 栾川县| 横峰县| 资阳市| 东乌珠穆沁旗| 行唐县| 建宁县| 繁昌县| 瑞丽市| 仁寿县| 安新县| 绩溪县| 宿松县| 泗阳县| 安义县| 手游| 宕昌县| 灵武市| 扶风县| 潍坊市| 汪清县| 鲜城| 博湖县| 万州区| 平泉县| 白山市| 安多县| 南安市| 房产| 淄博市| 衡东县| 隆德县| 徐水县| 缙云县| 蓬莱市| 菏泽市|