1. 程式人生 > >JFreeChart畫圖+jsp頁面顯示實現統計圖

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