JFreeChart畫圖+jsp頁面顯示實現統計圖

1 開發環境:

一、eclipse(可替換)html

二、jfreechart-1.0.19java

2 說明:

(1) source目錄:爲 jfreechart的源碼目錄;不會的主要看這裏。由於他的文檔是收費的。web

(2) lib目錄:爲包目錄,咱們須要關注的包爲 jfreechart-1.0.10.jar、 gnujaxp.jar和 jcommon-1.0.13.jar這三個包;tomcat

(3)根目錄下的 jfreechart-1.0.10-demo.jar是例子程序,你們雙擊後可看到其中有不少例子的運行結果。服務器

3 JavaWeb開發流程

3.1 導入jar包

將jfreechart-1.0.19/lib下面全部jar包導入到「/WEB-INF/lib」目錄下session

3.2 修改配置文件

在 web.xml文件中增長以下配置,儘可能配置在其餘優先級不高的servlet配置前面:app

<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>/DisplayChart</url-pattern>
</servlet-mapping>

3.3 編寫jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="org.jfree.data.general.DefaultPieDataset" %>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="org.jfree.chart.servlet.*" %>
<%@ page import="org.jfree.chart.StandardChartTheme" %>
<%@ page import="java.awt.Font" %>
<%@page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>          
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>數據分析</title>
</head>
<body>
    <!-- 餅狀圖 -->
     <%
    DefaultPieDataset dpd = new DefaultPieDataset();
    dpd.setValue("管理人員", 25);
    dpd.setValue("市場人員", 25);
    dpd.setValue("開發人員", 45);
    dpd.setValue("其餘人員", 10);
     
    //這一段是防止亂碼使用的
    StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  //建立主題樣式     
    standardChartTheme.setExtraLargeFont(new Font("隸書",Font.BOLD,20));  //設置標題字體
    standardChartTheme.setRegularFont(new Font("宋書",Font.PLAIN,15));    //設置圖例的字體
    standardChartTheme.setLargeFont(new Font("宋書",Font.PLAIN,15));      //設置軸向的字體
    ChartFactory.setChartTheme(standardChartTheme);                        //應用主題樣式
     
    JFreeChart chart = ChartFactory.createPieChart("某公司組織結構圖",dpd, true, false, false);
    String fileName = ServletUtilities.saveChartAsPNG(chart,800,600,session); 
    //ServletUtilities是面向web開發的工具類,返回一個字符串文件名,文件名自動生成,生成好的圖片會自動放在服務器(tomcat)的臨時文件下(temp)
     
    String url = request.getContextPath() + "/DisplayChart?filename=" + fileName;
    //根據文件名去臨時目錄下尋找該圖片,這裏的/DisplayChart路徑要與配置文件裏用戶自定義的<url-pattern>一致
%> 
     <img src="<%= url %>" width="400" height="350"> 

    <!-- 柱狀圖 -->
 <%
     DefaultCategoryDataset dataset = new DefaultCategoryDataset();
     dataset.addValue(0.2, "廣州", "豬肉");
     dataset.addValue(0.4, "廣州", "牛肉");
     dataset.addValue(0.1, "廣州", "雞肉");
     dataset.addValue(0.1, "廣州", "魚肉");
     // 建立主題樣式
     StandardChartTheme standardChartTheme1 = new StandardChartTheme("CN");
     // 設置標題字體
     standardChartTheme1.setExtraLargeFont(new Font("隸書", Font.BOLD, 20));
     // 設置圖例的字體
     standardChartTheme1.setRegularFont(new Font("宋書", Font.PLAIN, 15));
     // 設置軸向的字體
     standardChartTheme1.setLargeFont(new Font("宋書", Font.PLAIN, 15));
     // 應用主題樣式
     ChartFactory.setChartTheme(standardChartTheme1);
     
     JFreeChart chart1 = ChartFactory.createBarChart3D("肉類銷量統計圖", 
                       "肉類",
                       "銷量百分比(%)",
                       dataset,
                       PlotOrientation.VERTICAL,
                       false,
                       false,
                       false);
     String filename = ServletUtilities.saveChartAsPNG(chart1, 1200, 300, null, session);
     String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
     
     System.out.println(graphURL + "\n"+ filename);
 %>
 <img src="<%= graphURL %>"width=1200 height=300 border=0 usemap="#<%= filename %>">

</body>
</html>

4 效果圖

附jar下載地址:http://www.java2s.com/Code/Jar/CatalogJar.htmeclipse

相關文章
相關標籤/搜索