IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

JFreeChart et les Servlets


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut JFreeChart et les Servlets
    Bonjour,

    J'utilise JFreeChart pour afficher quelques graphiques (camemberts, histogrammes, ...) dans une application WEB; JSP et Servlet.

    J'arrive à tracer mes graphiques, mais mon souci est lié aux couleurs de fond, elles sont par défaut rouges et ne changent pas.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public class ServCam extends HttpServlet {
       public void doGet(HttpServletRequest req, HttpServletResponse res)
             throws ServletException, IOException {
     
          ServletOutputStream outb = res.getOutputStream();
     
          DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
     
          defaultpiedataset.setValue("Categorie 1", 43.5);
          defaultpiedataset.setValue("Categorie 2", 23.5);
          defaultpiedataset.setValue("Categorie 3", 123.5);
     
          JFreeChart graphe = ChartFactory.createPieChart3D("Test", defaultpiedataset, true, true, true);
          graphe.setBackgroundPaint(Color.white);
     
          PiePlot3D pieplot3d = (PiePlot3D) graphe.getPlot();
          pieplot3d.setBackgroundPaint(Color.LIGHT_GRAY);
          pieplot3d.setStartAngle(190D);
          pieplot3d.setForegroundAlpha(0.5F);
     
          BufferedImage imagetampon = graphe.createBufferedImage(600, 400);
          res.setContentType("image/JPEG");
          JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outb);
          encoder.encode(imagetampon);
       }
    }
    Je ne sais pas pourquoi la couleur du fond est toujours celle par défaut.
    Sur une application Windows, le même code donne le bon résultat, mais sur une servlet non plus.

    Merci pour vos aides.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    salut nasix,

    dans le bout de code que tu as donnée je ne vois aucune méthode traitant la couleur de tes catégories est-ce normal?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //definit simplement la couleur du fond de ton graphe
    pieplot3d.setBackgroundPaint(Color.LIGHT_GRAY);
    regarde de ce côté la : si tu met tes données en dures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // On definie une couleur pour les lignes avec la méthode setSeriesPaint
    plot.getRenderer().setSeriesPaint(0,COULEURLIGNE1); 
    plot.getRenderer().setSeriesPaint(1,COULEURLIGNE2);
    si tu met tes données en dynamique je te conseille de créer une table ou un champs de ta table qui fait référence à la méthode RVB.
    Color color = new Color(0,150,0); par exemple

    pour résumé tu associe un code couleur à une série de ton pie

    ensuite avec ta requête sql tu va pouvoir récupérer les valeur corespondantes avec resultSet.getString(int i)

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    //Recup des valeurs de techno pour figer les couleurs
    Requete="SELECT distinct(c.a) AS A, c.color,c.serie" +
    " FROM table1 c" +
    " ORDER BY c.serie";					
    resultSet = statement.executeQuery(Requete);
    int indice =0 ;
    while (resultSet.next())
    { 
    	//dataset.addValue(ton_axexY,A,ton_axeX);
    	dataset.addValue(0,resultSet.getString(1),"J01");
    	if((resultSet.getString(2)!=null) && (resultSet.getString(3)!=null))
    	{
    		String[] c = resultSet.getString(2).split(",");
    		renderer.setSeriesPaint(indice,new Color(Integer.decode(c[0]),Integer.decode(c[1]),Integer.decode(c[2])));
    		indice ++;
    	}
    }
    voila en espérant que ce que je te donne t'as aidé ou t'asa iguiller pr trouver la solution

  3. #3
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Ce n'est pas exactement ce que je veux.

    Je ne cherche pas encore à changer les couleurs des catégories(pie), je parle toujours des couleurs de fond du graphe (Chart).

    Aussi ce que je donne comme code n'est qu'un exemple, mes données sont extraites d'une session, il n'est donc pas la peine de donner un vrai exemple relativement difficile à comprendre.

    Je tiens juste à rappeler que le même bloc de code me donne exactement ce que je veux sur une application Windows (dans une JFrame), mon problème se pose juste pour la Servlet.

    Question :
    Ce problème peut-il lié au format d'image JPEG ?

  4. #4
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai réglé, il s'agissait de problème de compatibilité avec les autres librairies.
    Maintenant j'utilise jfreechart-1.0.0 avec jcommon-1.0.0, itext-1.3 et gnujaxp-1.0.0 et ça marche à merveille.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL QUERY] Problème avec les servlet plutôt qu'avec SQL
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/04/2006, 01h08
  2. [Info][JSP] achat livre sur les servlets et jsp
    Par mealtone dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/10/2005, 11h14
  3. [tomcat] comment déployer les servlets ?
    Par Kyti dans le forum Tomcat et TomEE
    Réponses: 56
    Dernier message: 06/04/2005, 09h35
  4. [Tomcat]comment compiler les servlets sous eclipse et tomcat
    Par boussaad dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 31/03/2005, 15h29
  5. [Débutant(e)]Les servlets et Eclipse
    Par Ethylene dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 16/02/2005, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo