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


1 開發環境:

1、eclipse(可替換)

2、jfreechart-1.0.19

2 說明:

(1) source目錄:為 jfreechart的源碼目錄;不會的主要看這里。因為他的文檔是收費的。

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

(3)根目錄下的 jfreechart-1.0.10-demo.jar是例子程序,大家雙擊后可看到其中有很多例子的運行結果。

3 JavaWeb開發流程

3.1 導入jar包

將jfreechart-1.0.19/lib下面所有jar包導入到“/WEB-INF/lib”目錄下

3.2 修改配置文件

在 web.xml文件中增加如下配置,盡量配置在其他優先級不高的servlet配置前面:

<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.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM