采用工具類ChartUtil和DisplayChart(jfreechart的servlet)輸出
將javabean里的生成圖片的方法寫的一個工具類ChartUtil里面。
1 .添加工具類ChartUtil
public class ChartUtil {
// 產生時間序列圖,返回圖片名稱
代碼
- public static String generatePieChart(DefaultPieDataset dataset,String title,int width,int height,HttpSession session, PrintWriter pw) {
-
- String filename = null;
- try {
- if (session != null)
- {
- ChartDeleter deleter = (ChartDeleter)session.getAttribute("JFreeChart_Deleter");
- session.removeAttribute("JFreeChart_Deleter");
- session.setAttribute("JFreeChart_Deleter", deleter);
- }
- JFreeChart chart = ChartFactory.createPieChart3D(
- title,
- dataset,
- true,
- true,
- false );
-
- ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
-
-
- filename = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);
-
- ChartUtilities.writeImageMap(pw, filename, info,true);
- pw.flush();
- } catch (Exception e) {
- System.out.println("Exception - " + e.toString());
- e.printStackTrace(System.out);
- filename = "picture_error.png"; }
- return filename;
- }
- }
2、在action里統計數據,設置好數據集dataset。傳到頁面
3、 在頁面里取出
代碼
- DefaultPieDataset piedataset=(DefaultPieDataset)request.getAttribute("piedataset");
- String p = ChartUtil.generatePieChart(piedataset," 項目收支線圖",500,300,null, new PrintWriter(out));
- String p1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + p;
-
- <td><img src="<%= p1 %>" width=500 height=300 border=0 usemap="#<%= p %>"></td>
4、在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>
posted on 2009-10-14 14:16
I LOVE JAVA 閱讀(614)
評論(0) 編輯 收藏 所屬分類:
java基礎知識 、
java高端技術