Accueil > Forum > > > > jfreechart
jfreechart
mardi 27 mars 2007 à 16:28:41 |
jfreechart

thanatos67
|
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
|
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
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|