본문 바로가기
JAVA

JFREECHART 실전 코드

by 정윤재 2009. 3. 30.

//Statstic-Control.jsp

<%@ page import = "com.mtelo.chart.*,java.io.*" language="java"
    pageEncoding="EUC-KR"%>
<%@ page import = "org.jfree.chart.*" %>
getServletContext().getRealPath("/graph.jpg");
<%
System.setProperty("java.awt.headless", "true");
testChartDAO dao = new testChartDAO();
 JFreeChart chart= dao.getBarChart();
 
 String fileName=request.getRealPath("/graph.jpg");
 System.out.println("처음 만들어진 경로"+fileName);
 
 File file1=new File(fileName);
 FileOutputStream fos=new FileOutputStream(file1);
 
 ChartUtilities.writeChartAsPNG(fos, chart, 400, 400);
 fos.close();
 
 request.setAttribute("fn",fileName);
%>
<jsp:forward page="Statistic-view.jsp"/>



//Statistic-view.jsp

<%@ page import="java.io.*" language="java" pageEncoding="EUC-KR"%>
<%
String fileName=(String)request.getAttribute("fn");
System.out.println("넘어온 경로 : "+fileName);
%>
<html>
<head>
</head>
<body>
<p>
 <center>
   <img src="/VRS-WEB/graph.jpg"><br>
   <a href="Statstic-Form.jsp">통계 보기 페이지로 이동</a>
 </center>
</body>
</html>


//testChartDAO.java

package com.mtelo.chart;
import java.awt.Color;import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
public class testChartDAO {
 public JFreeChart getPieChart(){
  DefaultPieDataset dataset=new DefaultPieDataset();
  
  String bread  =   "빵";
  String pizza  =   "피자";
  String water  =   "물";
  
  try{
  
   bread   =   new String(bread.getBytes("8859_1"),"SansSerif");
   pizza   =   new String(pizza.getBytes("8859_1"),"SansSerif");
   water   =   new String(water.getBytes("8859_1"),"SansSerif");
  
  }catch(Exception e){
   e.printStackTrace();
  }
  
  dataset.setValue(bread,5000);
  dataset.setValue(pizza,11000);

 

  dataset.setValue(water,4000);
  
  
  
  System.setProperty("java.awt.headless", "true");

 

  JFreeChart chart = ChartFactory.createPieChart("food", dataset, false,true, false);  chart.setBackgroundPaint(Color.yellow);
  chart.getTitle().setPaint(Color.blue);
  
    System.out.println(chart.getTitle().getFont().getName());
  

 

  
  return chart;
 }
 
 public JFreeChart getBarChart(){
  DefaultCategoryDataset dataset = new DefaultCategoryDataset();
  
  String bread  =   "빵";
  String pizza  =   "피자";
  String water  =   "물";
  
  String spcies  =   "종류";
  String won   =   "원";
  
  try{
  
   bread   =   new String(bread.getBytes("8859_1"),"SansSerif");
   pizza   =   new String(pizza.getBytes("8859_1"),"SansSerif");
   water   =   new String(water.getBytes("8859_1"),"SansSerif");
   spcies   =   new String(spcies.getBytes("8859_1"),"SansSerif");
   won    =   new String(won.getBytes("8859_1"),"SansSerif");
  
  }catch(Exception e){
   e.printStackTrace();
  }
  
  dataset.setValue(5000,bread,bread);
  //첫번째는 숫자, 두번째는 표에 나올 종류 이름 , 세번째는 표밖에서 분류로 나올 것들인데 두번째와 세번째는
  //같게 해주면 될것 같다.
  dataset.setValue(11000,pizza,pizza);  dataset.setValue(4000,water,water);
  
  JFreeChart chart = ChartFactory.createBarChart("food",spcies,won,dataset,PlotOrientation.VERTICAL,true,true,false);
  
  return chart;
 }
}


댓글