[JFreeChart] modification SeriesPaint
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 :
Code:
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);
}
} |
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.
La classe Graphique :
Code:
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();
}
} |
Si quelqu'un a une petite suggestion, elle est la bienvenue :P merci d'avance a vous