begin process at 2012 02 15 01:31:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Système

 > 

API

 > 

jfreechart


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

jfreechart

mardi 27 mars 2007 à 16:28:41 | jfreechart

thanatos67

Membre Club
Salutation.

J'ai une application qui génère un tableau avec des données météorologiques stockées dans une base Mysql (qui fonctionne).
Je dois aussi créer un graphique à axes multiples (pour chaque colonnes) avec JFREECHART et le mettre dans un JPanel. Le problème c'est que je n'ai pas d'exemple pour le générer à partir des données Mysql.
Voilà ce que j'ai pour le moment :

private JCheckBox getJCBTempInt() {
        if (jCBTempInt == null) {
            jCBTempInt = new JCheckBox();
            jCBTempInt.setBounds(new Rectangle(15, 105, 166, 26));
            jCBTempInt.setText("Température Interne");
            jCBTempInt.setFont(new Font("Dialog", Font.BOLD, 12));
            jCBTempInt.setBackground(new Color(204, 204, 204));
            jCBTempInt.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
                    chart = ChartFactory.createXYLineChart("Graphique meteo", "date", "donnees", xyDataset, PlotOrientation.VERTICAL, true, true, true);
                    chart.setBackgroundPaint(java.awt.Color.white);
                    plot = chart.getXYPlot();
                    org.jdom.Document document = null;
                    Element racine = null;
                    SAXBuilder sxb = new SAXBuilder();
                    jTTableau.setModel(tableModel);
                   
                    try{
                        //On crée un nouveau document JDOM avec en argument le fichier XML
                        //Le parsing est terminé
                        document = sxb.build(new File("c:/Program Files/MeteoStat2007/connexion.xml"));
                    }
                    catch(Exception jdm) {
                        jdm.printStackTrace();
                    }
                    racine = document.getRootElement(); //balise <connexion>
                    Element filsDeRacine = racine.getChild("mysql"); // balise <mysql>
                    String host = filsDeRacine.getChild("host").getText();
                    String base = filsDeRacine.getChild("base").getText();
                    try{
                        sql = "select date_saisie,humidite,precipitation,pression,temp_interne,temp_externe,direct_vent,vit_vent from journalier where date_saisie between '"+date_origine+"' and '"+date_final+"';";           //la requete sql pour les données de ma base
                        conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+base+"?user=admin&password=jarod");

                        xyDataset = new JDBCXYDataset(conn);
                        xyDataset.executeQuery(sql);
                        conn.close();
                    }
                    catch(SQLException ex){
                        JOptionPane.showMessageDialog(null, "select loupé", "Message d'avertissement", JOptionPane.ERROR_MESSAGE);
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                    }
                }
            });
        }
        return jCBTempInt;
    }

J'ai mis en vert ce qui fonctionne. Le reste concerne jfreechart. Si vous pouviez m'aider à completer le code, ou me donner un exemple, je vous en serais tres reconnaissant.

Merci d'avance.

au bout du clavier...
mardi 27 mars 2007 à 16:30:55 | Re : jfreechart

thanatos67

Membre Club
Petite modification concernant le code :

private JCheckBox getJCBTempInt() {
        if (jCBTempInt == null) {
            jCBTempInt = new JCheckBox();
            jCBTempInt.setBounds(new Rectangle(15, 105, 166, 26));
            jCBTempInt.setText("Température Interne");
            jCBTempInt.setFont(new Font("Dialog", Font.BOLD, 12));
            jCBTempInt.setBackground(new Color(204, 204, 204));
            jCBTempInt.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
                    chart = ChartFactory.createXYLineChart("Graphique meteo", "date", "donnees", xyDataset, PlotOrientation.VERTICAL, true, true, true);
                    chart.setBackgroundPaint(java.awt.Color.white);
                    plot = chart.getXYPlot();

                    org.jdom.Document document = null;
                    Element racine = null;
                    SAXBuilder sxb = new SAXBuilder();
                    jTTableau.setModel(tableModel);
                   
                    try{
                        //On crée un nouveau document JDOM avec en argument le fichier XML
                        //Le parsing est terminé
                        document = sxb.build(new File("c:/Program Files/MeteoStat2007/connexion.xml"));
                    }
                    catch(Exception jdm) {
                        jdm.printStackTrace();
                    }
                    racine = document.getRootElement(); //balise <connexion>
                    Element filsDeRacine = racine.getChild("mysql"); // balise <mysql>
                    String host = filsDeRacine.getChild("host").getText();
                    String base = filsDeRacine.getChild("base").getText();
                    try{
                        sql = "select date_saisie,humidite,precipitation,pression,temp_interne,temp_externe,direct_vent,vit_vent from journalier where date_saisie between '"+date_origine+"' and '"+date_final+"';";           //la requete sql pour les données de ma base
                        conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+base+"?user=admin&password=jarod");

                        xyDataset = new JDBCXYDataset(conn);
                        xyDataset.executeQuery(sql);
                        conn.close();
                    }
                    catch(SQLException ex){
                        JOptionPane.showMessageDialog(null, "select loupé", "Message d'avertissement", JOptionPane.ERROR_MESSAGE);
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                    }
                }
            });
        }
        return jCBTempInt;
    }

Voila. merci d'avance.

au bout du clavier...
jeudi 29 mars 2007 à 16:32:57 | Re : jfreechart

GodConan

Ca semble juste, quel est le probleme exactement ?!!!
Perso je me serai assuré de l existance du Dataset avant de le fournir au Chart par contre...

Sinon vu le nmobre de series que tu utilise ;o) j espere que la table ne contient pas trop de donées ... sinon ca va ramer ton truc ;o) ou alors tu vas exploser la mémoire alloué à la VM ... ;o)... je trouve JFreeChart assé peu adapté à l exploitation de données provenant de SGBDR .





[purple]GodConan[/purple][:o)]
samedi 7 avril 2007 à 21:56:32 | Re : jfreechart

gattous

bon, je crois que t'aurais dû remplir ta dataset avant de créer l'objet chart, pour que ton code devienne par exple :
private JCheckBox getJCBTempInt() {
        if (jCBTempInt == null) {
            jCBTempInt = new JCheckBox();
            jCBTempInt.setBounds(new Rectangle(15, 105, 166, 26));
            jCBTempInt.setText("Température Interne");
            jCBTempInt.setFont(new Font("Dialog", Font.BOLD, 12));
            jCBTempInt.setBackground(new Color(204, 204, 204));
            jCBTempInt.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
// ici t'as créé ta chart, avec comme dataset l xyDataset non encore remplie de données
   /*                 chart = ChartFactory.createXYLineChart("Graphique meteo", "date", "donnees", xyDataset, PlotOrientation.VERTICAL, true, true, true);
                    chart.setBackgroundPaint(java.awt.Color.white);
                    plot = chart.getXYPlot(); */

                    org.jdom.Document document = null;
                    Element racine = null;
                    SAXBuilder sxb = new SAXBuilder();
                    jTTableau.setModel(tableModel);
                   
                    try{
                        //On crée un nouveau document JDOM avec en argument le fichier XML
                        //Le parsing est terminé
                        document = sxb.build(new File("c:/Program Files/MeteoStat2007/connexion.xml"));
                    }
                    catch(Exception jdm) {
                        jdm.printStackTrace();
                    }
                    racine = document.getRootElement(); //balise <connexion>
                    Element filsDeRacine = racine.getChild("mysql"); // balise <mysql>
                    String host = filsDeRacine.getChild("host").getText();
                    String base = filsDeRacine.getChild("base").getText();
                    try{
                        sql = "select date_saisie,humidite,precipitation,pression,temp_interne,temp_externe,direct_vent,vit_vent from journalier where date_saisie between '"+date_origine+"' and '"+date_final+"';";           //la requete sql pour les données de ma base
                        conn = DriverManager.getConnection("jdbc:mysql://"+host+"/"+base+"?user=admin&password=jarod");

// ici t'as rempli ta dataset                  
    xyDataset = new JDBCXYDataset(conn);
                        xyDataset.executeQuery(sql);
// donc c'est apres cette étape que tu devras placer le code placé en commentaire là-haut
// et suivant ce que tu veux ke ton pgm fasse en cas d'exception, si tu veu créer la chart quoi que //ce soit le résultat, place ton code aprés le catch, sinon place le directement ici..;
                        conn.close();
                    }
                    catch(SQLException ex){
                        JOptionPane.showMessageDialog(null, "select loupé", "Message d'avertissement", JOptionPane.ERROR_MESSAGE);
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                    }
                }
            });
        }
        return jCBTempInt;
    }
samedi 7 avril 2007 à 22:03:57 | Re : jfreechart

gattous

je suis d'accord avec GodConan sur le pt que JFreeChart n'est pas assez adapté pour l'exploitation directe des données existantes dans des bases de donnés, perso je préfére toujours extraire mes données dans des listes, les  traiter, puis les  exploiter avec JFreeChart..


Cette discussion est classée dans : base, date, document, jfreechart, jcbtempint


Répondre à ce message

Sujets en rapport avec ce message

connexion et insertion dans une base [ par samsih ] Bonjour,j'ai crée une table qui contient les champs svts: Date, Heure dans JdatastoreExplore(jbuilder7) et je voudrais inserer des informations (Date recuperation date systeme dans une base my sql [ par zied86 ] salutje veux recuperer la date systeme et l'enregitrer dans une base mysql dans php a l'aide d'une jsp..Ellouze Zied récupération d'une date dans une base de données Oracle 9i [ par albancadiot ] Bonjour,j'ai un problème pour quelques chose qui me semble tout bête.Je doit récupérer des dates dans une table Oracle 9i . J'utilise eclipse et java Base de données et JDBC [ par le_totophe ] Bonjour à tous, j'ai besoin d'une base de données sous forme de fichiers accessible via JDBC, j'avais pour celà téléchargé SQLite qui au demeurant n'e Update BD mysql [ par Nico_35136 ] Bonjour tout le monde, Voilà j'aimerai que l'on m'éclaire un tout petit peu. Donc je travail avec une base de donnée Mysql ce que j'aimerai faire c' jfreechart et mysql(urgent) [ par 123698745 ] Bonjour, Je suis débutant en développement avec java (j2EE). Je dois créer une sortie graphique et statique à partir d'une base de données implémentée jfreechart et mysql [ par 123698745 ] Je suis débutant en développement avec java (j2EE). Je dois créer une sortie graphique et statique à partir d'une base de données implémentée avec my Jcalendar avec base de donnée [ par kewatar ] Bonsoir, J'ai un problème en relation avec le Jcalendar et une base de donnée. je travaille dans une application ou j'utilise un formulaire ou un empl date dans un code java et base de donnée access [ par genjouna ] slt tous le monde; j'ai un problème lors de la connexion a la base de donnée,si j'écrit une date tel que 20/07/2010 sa marche bien res= con.execute fond d'une case d'un tableau [ par genjouna ] slt, je veux mettre le fond d'une case d'un tableau en couleur mais je n'arrive pas,et j'ai pas compris d'ou il vient le probléme. svp aidez moi Ob


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,176 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales