begin process at 2010 02 09 17:25:24
  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 migration oracle vers mysql [ par firas_tn ] Bonjour je suis entrain de développer une application web java qui se connecte à une base de données oracle mais j'ai un probleme parce que je dois mi Connexion base Java DB / Derby [ par le_totophe ] Bonjour à vous tous,J'ai des requêtes SQL qui doivent fonctionner aussi bien sous MySQL que sous Derby. Jusque là pas de problème. La où ça se corse, comment charger les MenuItems à partir d'une base de données? [ par firas_tn ] Bonsoir tout le mondeje suis entrain de développer une application swing avec un menu et des sous menus qui doivent se charger à partir d'une base de Problème de Manifest [ par cyril4900 ] Bonjour à tous,Je veux créer un jar exécutable contenant lui même des jars externes (jfreechart) pour mon projet. Je développe sur eclipse. Tout d'abo Transformer une Date en char [ par bokc ] Bonjour,J'ai besoin de transfomer une date en chars. Je m'explique :    il faut coder chaques éléments sur 1 octet (char) :        Seconde => 1octet  Authentification [ par nadias ] Bonjour a tous,Voila je dois ecrire une application java dans laquel le point d'netrée doit etre un formulaire d'authentification.Le probleme c'est qu


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,562 sec (4)

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