JFreeChart est une bibliothèque open source qui permet de créer des données
statistiques sous la forme de graphiques. Elle possède plusieurs formats dont le
camembert, les barres ou les lignes et propose de nombreuses options de
configuration pour personnaliser le rendu des graphiques. Elle peut s'utiliser
dans des applications standalone ou des applications web et permet également
d'exporter le graphique sous la forme d'une image.
La version utilisée dans cette section est la 0.9.18.
Pour l'utiliser, il faut télécharger le fichier jfreechart-0.9.18.zip et le
décompresser. Son utilisation nécessite l'ajout dans le classpath des fichiers
jfreechart-0.9.18.zip et des fichiers .jar présents dans le répertoire lib
décompressé.
Les données utilisées dans le graphique sont encapsulées dans un objet de
type Dataset. Il existe plusieurs sous type de cette classe en fonction du type
de graphique souhaité.
Un objet de type JFreechart encapsule le graphique. Une instance d'un tel
objet est obtenue en utilisant une des méthodes de la classe ChartFactory.
Un exemple avec un graphique en forme de camembert
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.data.*;
public class TestPieChart extends JFrame {
private JPanel pnl;
public TestPieChart() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
pnl = new JPanel(new BorderLayout());
setContentPane(pnl);
setSize(400, 250);
DefaultPieDataset pieDataset = new DefaultPieDataset();
pieDataset.setValue("Valeur1", new Integer(27));
pieDataset.setValue("Valeur2", new Integer(10));
pieDataset.setValue("Valeur3", new Integer(50));
pieDataset.setValue("Valeur4", new Integer(5));
JFreeChart pieChart = ChartFactory.createPieChart("Test camembert",
pieDataset, true, true, true);
ChartPanel cPanel = new ChartPanel(pieChart);
pnl.add(cPanel);
}
public static void main(String args[]) {
TestPieChart tpc = new TestPieChart();
tpc.setVisible(true);
}
}
Pour chaque graphique, il existe de nombreuses possibilités de
configuration.
JFreechart peut aussi être mis en oeuvre dans une application web, le plus
pratique étant d'utiliser une servlet qui renvoie dans la réponse une image
générée par JfreeChart.
Exemple : JSP qui affiche le graphique
<%@ page language="java" %>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Test JFreeChart</title>
</head>
<body bgcolor="#FFFFFF">
<H1>Exemple de graphique avec JFreeChart</h1>
<img src="/testlomboz2/ServletBarChart">
</body>
</html>
Dans l'exemple précédent, l'image contenant le graphique est généré par une
sevlet.
Cette section n'a proposé qu'une introduction à JFreeChart en proposant
quelques exemples très simple sur les nombreuses possibilités de cette puissante
bibliothèque.