Bonjour,
Je viens de me mettre à l'utilisation de JFreeChart et j'aimerais savoir comment modifier le rendu pour mon XYLineChart. Je me suis créé une classe : Graphique qui hérite de JPanel et qui contient mon dessin. J'utilise XYSeriesCollection pour stocker mes series et DefaultXYItemRenderer pour pouvoir modifier la couleur de mes lignes. Tout fonctionne tres bien si j ajoute une serie a mon dessin :
par contre si je veux en retirer une je ne sais pas comment faire pour modifier également la représentation dans le renderer car mon dessin s'affiche bien avec une série en moins mais les couleurs ne sont plus bonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void AjouterXYSeries(XYSeries pSerie, Color pCouleur) { if(pSerie != null) { coll.addSeries(pSerie); rendu.setSeriesPaint(coll.getSeriesCount()-1, pCouleur); } }
La classe Graphique :
Si quelqu'un a une petite suggestion, elle est la bienvenue
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 package GUI; import java.awt.Color; import javax.swing.JPanel; import metier.CLVehicules; import org.jfree.chart.*; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.xy.*; import org.jfree.data.xy.*; public class graphique extends JPanel { /** * */ private static final long serialVersionUID = 1L; private XYSeriesCollection coll; private DefaultXYItemRenderer rendu; public graphique() { setBackground(Color.white); coll = new XYSeriesCollection(); rendu = new DefaultXYItemRenderer(); } public void AjouterXYSeries(XYSeries pSerie, Color pCouleur) { if(pSerie != null) { coll.addSeries(pSerie); rendu.setSeriesPaint(coll.getSeriesCount()-1, pCouleur); } } public void CreerGraphique() { XYDataset dataset = coll; JFreeChart graph = ChartFactory.createXYLineChart("Consommation Essence", "date", "l/100km", dataset, PlotOrientation.VERTICAL, true, true, false); graph.getXYPlot().setRenderer(rendu); ChartPanel pan = new ChartPanel(graph); add(pan); } public void ModifierGraphique(CLVehicules pVehicule, EGraphiqueAction pAction) { switch(pAction) { case Ajouter : { AjouterXYSeries(pVehicule.CreerXYSeries(), pVehicule.getCouleur()); break; } case Supprimer : { coll.removeSeries(pVehicule.CreerXYSeries()); // mofifier le renderer break; } } CreerGraphique(); } }merci d'avance a vous
Partager