2012-07-01 79 views
1

我想用jfree圖表創建JSP餅圖,我使用此代碼jfreechart的JSP中

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<%@ page import="java.awt.*" %> 
<%@ page import="java.io.*" %> 
<%@ page import="org.jfree.chart.*" %> 
<%@ page import="org.jfree.chart.entity.*" %> 
<%@ page import ="org.jfree.data.general.*"%> 
<% 
    final DefaultPieDataset data = new DefaultPieDataset(); 
    data.setValue("One", new Double(43.2)); 
    data.setValue("Two", new Double(10.0)); 
    data.setValue("Three", new Double(27.5)); 
    data.setValue("Four", new Double(17.5)); 
    data.setValue("Five", new Double(11.0)); 
    data.setValue("Six", new Double(19.4)); 

    JFreeChart chart = ChartFactory.createPieChart 
    ("Pie Chart ", data, true, true, false); 

try { 
final ChartRenderingInfo info = new 
    ChartRenderingInfo(new StandardEntityCollection()); 

    final File file1 = new File("../webapps/jspchart/ 
    web/piechart.png"); 
    ChartUtilities.saveChartAsPNG(
    file1, chart, 600, 400, info); 
    } catch (Exception e) { 
    out.println(e); 
    } 
%> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" 
    content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
    </head> 
    <body> 
    <IMG SRC="piechart.png" WIDTH="600" HEIGHT="400" 
    BORDER="0" USEMAP="#chart"> 
    </body> 
</html> 

的問題是,我得到這個例外「java.io.FileNotFoundException:../ webapps/jspchart/web/piechart.png(沒有這樣的文件或目錄)「

任何想法??

回答

0

你檢查了這條路嗎?那裏的文件? (我不打賭)。

將該文件複製到該目錄下,問題就會解決。

+0

我沒有得到you..which文件....抱歉,但我是新來jfreechart..t認爲它創建了一個靜態圖像,其我們稍後可以嵌入到我們的頁面 – Somye

+0

檢查文件或此路徑是否存在:/webapps/jspchart/web/piechart.png – Tomer

1

異常清楚地寫着 「java.io.FileNotFoundException: ../webapps/jspchart/web/piechart.png (No such file or directory)

這裏piechart.png../webapps/jspchart/web/piechart.png)或目錄不存在。

驗證這些信息並修復它。

修復可以是: -

  1. jspchart文件夾或
  2. 下創建一個文件夾Web配售Web文件夾

下一個piechart.png文件然後嘗試編譯並再次運行應用程序。

1

我得到了這個。實際上我需要餅圖從數據庫中獲取值。 數據庫的第一列是名稱,其次是其值。 的代碼是: 表名稱是圖表和數據庫是少校

<%@ page import="java.io.*"%> 

<<%@ page import="java.awt.*" %> 
<%@ page import="java.io.*" %> 
<%@ page import="java.sql.*" %> 
<%@ page import="org.jfree.data.jdbc.JDBCPieDataset" %> 
<%@ page import="org.jfree.chart.plot.PlotOrientation" %> 
<%@ page import="org.jfree.chart.JFreeChart" %> 
<%@ page import="org.jfree.chart.ChartUtilities" %> 
<%@ page import="org.jfree.chart.ChartFactory" %> 
<%@ page import="org.jfree.data.general.DefaultPieDataset" %> 
<%@ page import="org.jfree.chart.*"%> 
<%@ page import="org.jfree.chart.entity.*"%> 
<%@ page import="org.jfree.data.general.*"%> 
<%@ page import="org.jfree.chart.plot.PiePlot;" %> 

<% 

       String query = "SELECT * from chart"; 
       JDBCPieDataset dataset = new JDBCPieDataset("jdbc:mysql://localhost:3306/maj", "com.mysql.jdbc.Driver","root", "password"); 
       dataset.executeQuery(query); 

      JFreeChart chart = ChartFactory.createPieChart("File System",dataset, true, true, false); 
      //chart.setBackgroundPaint(new Color(222, 222, 255)); 
       final PiePlot plot = (PiePlot) chart.getPlot(); 
       plot.setBackgroundPaint(Color.white); 
       plot.setCircular(true); 

      try { 

       final ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); 
       final File file1 = new File(getServletContext().getRealPath(".") + "/piechart.png"); 

       ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info); 
      } catch (Exception e) { 
       System.out.println(e); 

      } 




%> 
<html> 
    <body> 
     Heading 
     <IMG SRC="piechart.png" WIDTH="500" HEIGHT="400" style="border:4px solid orange;" USEMAP="#chart" alt="image"> 
    </body> 
</html>