Ajouter un commentaire

wiss20000
[Résolu]Jfreechart + Servlet/JSP

bonjour,
voila depuis un bon moment que je cherche à résoudre ce problème :(
je veux ,à partir d'une page web, obtenir une courbe avec Jfreechart
est ce que je dois écrire mon code (pour le graph) dans la JSP ou Servlet
:?
RQ:
le graphe sera dans un fenetre indépendante (non une page web) dès que je fais une selection dans ma page web :?

voici mon code

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.NumberAxis;
//import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
//import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;

//import java.awt.BasicStroke;
import java.awt.Color;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//import java.text.DecimalFormat;

public class LineChartTests extends ApplicationFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public LineChartTests(String title) {
	super(title);
		CategoryDataset dataset = createDataset();
		CategoryDataset dataset1 = createDataset1();
		CategoryDataset dataset2 = createDataset2();
			JFreeChart chart = createChart(dataset,dataset1,dataset2);

			// add the chart to a panel...
			ChartPanel chartPanel = new ChartPanel(chart);

			chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
			setContentPane(chartPanel);

	}
	private String url= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/pfe.mdb";
	private String user = "user";
	private String pass = "pass";
	private String []temps = new String [100];
	private float[] Traf= new float [100];
	private float[] SRVLINES= new float [100];
	private float[] CULC= new float [100];
	private int y=0;
	
	private CategoryDataset createDataset() {
		// row keys...
		String series1 = "TGRP:TRAFCARR";
	//	String series2 = "TGRP:SRVLINES";
	//	String series3 = "TGRP:CULC";
		
//		--connection à la base donnée
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
			}
			catch(ClassNotFoundException e) {
			System.err.println("Erreur de chargement du driver : + e") ;
			}
			try {
				Connection connect = DriverManager.getConnection(url,user,pass) ;
				Statement statement = connect.createStatement() ;
				String Str="2007/05/26";
				String Str01="2007/05/21";
				String Str02="MSC01:TCLIP1";
				
				
				
	       		String query = "select \"TGRP:TRAFCARR\",Time from TGRPDetailed where (Date=\'"+Str+"\'  and Object=\'"+Str02+"\') ";		       		
	       		//String query = "select \"TGRP:TRAFCARR\",Time from TGRPDetailed where (Date=\'"+Str+"\' and Object=\'"+Str02+"\') ";
	       		ResultSet resultset = statement.executeQuery(query);				
				while (resultset.next()!= false){				 	
					 String Str1 = resultset.getString(1);

					 String Str2 = resultset.getString(2);
					 if (Str1.indexOf("-")==-1){
					 Traf[y]= Float.parseFloat(Str1);
					 }
					 

					 temps[y]=Str2;
					 y++;
						} 	
				System.out.println(y);
			connect.close();// fermuture de la connection à la BD
				}
			catch(SQLException sqle) {
			System.err.println("Erreur lors de la connexion : " + sqle) ;
			}
	
		
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		for (int i=0;i<y;i++){
			dataset.addValue(Traf[i], series1, temps[i]);
		//	dataset.addValue(SRVLINES[i], series2, temps[i]);
		//	dataset.addValue(CULC[i], series3, temps[i]);
		}


		return dataset;
	}
	private CategoryDataset createDataset1() {
		// row keys...
		//String series1 = "TGRP:TRAFCARR";
		String series2 = "TGRP:SRVLINES";
	//	String series3 = "TGRP:CULC";
		
//		--connection à la base donnée
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
			}
			catch(ClassNotFoundException e) {
			System.err.println("Erreur de chargement du driver : + e") ;
			}
			try {
				Connection connect = DriverManager.getConnection(url,user,pass) ;
				Statement statement = connect.createStatement() ;
				String Str="2007/05/26";
				String Str01="2007/05/21";
				String Str02="MSC01:TCLIP1";
				
				y=0;
				
	       		String query = "select \"TGRP:SRVLINES\",Time from TGRPDetailed where (Date=\'"+Str+"\'  and Object=\'"+Str02+"\') ";		       		
	       		//String query = "select \"TGRP:TRAFCARR\",Time from TGRPDetailed where (Date=\'"+Str+"\' and Object=\'"+Str02+"\') ";
	       		ResultSet resultset = statement.executeQuery(query);				
				while (resultset.next()!= false){				 	
					 String Str1 = resultset.getString(1);

					 String Str2 = resultset.getString(2);

					 if (Str1.indexOf("-")==-1){
					 SRVLINES[y]= Float.parseFloat(Str1);
					 }

					// temps[y]=Str2;
					 y++;
						} 	
				System.out.println(y);
			connect.close();// fermuture de la connection à la BD
				}
			catch(SQLException sqle) {
			System.err.println("Erreur lors de la connexion : " + sqle) ;
			}
	
		
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		for (int i=0;i<y;i++){
		//	dataset.addValue(Traf[i], series1, temps[i]);
			dataset.addValue(SRVLINES[i], series2, temps[i]);
		//	dataset.addValue(CULC[i], series3, temps[i]);
		}


		return dataset;
	}
	private CategoryDataset createDataset2() {
		// row keys...
		//String series1 = "TGRP:TRAFCARR";
		//String series2 = "TGRP:SRVLINES";
		String series3 = "TGRP:CULC";
		
//		--connection à la base donnée
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
			}
			catch(ClassNotFoundException e) {
			System.err.println("Erreur de chargement du driver : + e") ;
			}
			try {
				Connection connect = DriverManager.getConnection(url,user,pass) ;
				Statement statement = connect.createStatement() ;
				String Str="2007/05/26";
				String Str01="2007/05/21";
				String Str02="MSC01:TCLIP1";
				
				y=0;
				
	       		String query = "select \"TGRP:CULC\",Time from TGRPDetailed where (Date=\'"+Str+"\'  and Object=\'"+Str02+"\') ";		       		
	       		//String query = "select \"TGRP:TRAFCARR\",Time from TGRPDetailed where (Date=\'"+Str+"\' and Object=\'"+Str02+"\') ";
	       		ResultSet resultset = statement.executeQuery(query);				
				while (resultset.next()!= false){				 	
					 String Str1 = resultset.getString(1);

					 String Str2 = resultset.getString(2);

					 if (Str1.indexOf("-")==-1){
					 CULC[y]= Float.parseFloat(Str1);
					 }

					// temps[y]=Str2;
					 y++;
						} 	
				System.out.println(y);
			connect.close();// fermuture de la connection à la BD
				}
			catch(SQLException sqle) {
			System.err.println("Erreur lors de la connexion : " + sqle) ;
			}
	
		
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		for (int i=0;i<y;i++){
		//	dataset.addValue(Traf[i], series1, temps[i]);
		//	dataset.addValue(SRVLINES[i], series2, temps[i]);
			dataset.addValue(CULC[i], series3, temps[i]);
		}


		return dataset;
	}
	private JFreeChart createChart(CategoryDataset dataset, CategoryDataset dataset12, CategoryDataset dataset22) {
		// create the chart...
		JFreeChart jfreechart = ChartFactory.createLineChart(
				"Line Chart Demo 1", // chart title
				"Time", // domain axis label
				"Value", // range axis label
				dataset, // data
				//dataset12, // data
				//dataset22, // data
				PlotOrientation.VERTICAL, // orientation
				true, // include legend
				true, // tooltips
				false // urls
		);

		 jfreechart.setBackgroundPaint(Color.white);

	       CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
	       categoryplot.setOrientation(PlotOrientation.VERTICAL);
	       categoryplot.setBackgroundPaint(Color.lightGray);
	       categoryplot.setDomainGridlinePaint(Color.white);
	       categoryplot.setRangeGridlinePaint(Color.white);
	       categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
	       categoryplot.getRangeAxis().setFixedDimension(15D);
	       
	       LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot.getRenderer() ;
	       lineandshaperenderer.setSeriesPaint(0, Color.black);
	       categoryplot.setRenderer(0, lineandshaperenderer);
	       
	       CategoryDataset dataset1 = createDataset1();
	       categoryplot.setDataset(1,dataset1) ;
	       categoryplot.mapDatasetToRangeAxis(1, 1);
	       //LineAndShapeRenderer lineandshaperenderer1 = new LineAndShapeRenderer();
	       LineAndShapeRenderer lineandshaperenderer1 = new LineAndShapeRenderer(true,false);
	       lineandshaperenderer1.setSeriesPaint(1, Color.red);
	       categoryplot.setRenderer(1, lineandshaperenderer1);
	       NumberAxis numberaxis = new NumberAxis("TGRP:SRVLINES");
	       numberaxis.setFixedDimension(10D);
	       numberaxis.setAutoRangeIncludesZero(false);
	       numberaxis.setLabelPaint(Color.red);
	       numberaxis.setTickLabelPaint(Color.red);
	       categoryplot.setRangeAxis(1, numberaxis);
	       categoryplot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
//StandardXYItemRenderer standardxyitemrenderer1 = new StandardXYItemRenderer();
	       CategoryDataset dataset2 = createDataset2();
	       categoryplot.setDataset(2,dataset2) ;
	       categoryplot.mapDatasetToRangeAxis(2, 2);
	       LineAndShapeRenderer lineandshaperenderer2 = new LineAndShapeRenderer(true,false);
	       lineandshaperenderer2.setSeriesPaint(2, Color.blue);// couleur de la courbe
	       categoryplot.setRenderer(2, lineandshaperenderer2);
	       NumberAxis numberaxis1 = new NumberAxis("TGRP:CULC");
	       numberaxis1.setLabelPaint(Color.blue);// couleur indexe de l'axe
	       numberaxis1.setTickLabelPaint(Color.blue);// couleur des value
	       categoryplot.setRangeAxis(2, numberaxis1);
	       categoryplot.setRangeAxisLocation(2, AxisLocation.BOTTOM_OR_RIGHT);
	       
		return jfreechart;
		}

	public static void main(String[] args) {
		LineChartTests demo = new LineChartTests("Line Chart Demo");
		demo.pack();
		RefineryUtilities.centerFrameOnScreen(demo);
		demo.setVisible(true);
	}
}

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 U   U  U   U   SSS    SSS   PPPP  
U U U U S S P P
U U U U SSS SSS PPPP
U U U U S S P
UUU UUU SSSS SSSS P