Je suis en train d'utiliser Studio pour créer un rapport JasperReports. J'ai besoin d'augmenter la largeur du graphique en ligne (par défaut, il est trop mince). Autant que je sache, JasperReports utilise JFreeChart pour le graphique, et j'ai trouvé ce morceau de code sur Google pour personnaliser :
public class TSChartCustomizer extends JRAbstractChartCustomizer {
public void customize(JFreeChart chart, JRChart jasperChart) {
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) chart.getXYPlot().getRenderer();
BasicStroke stroke = new BasicStroke(3f);
renderer.setSeriesStroke(1, stroke);
}
}
J'ai construit et ajouté la classe ci-dessus dans un jar et l'ai ajoutée dans le projet jasper. Ensuite, dans les propriétés du graphique, je peux sélectionner la classe dans la classe du customiseur. Mais quand j'ai exécuté le rapport, j'ai obtenu cette erreur :
java.lang.ClassCastException: org.jfree.chart.plot.CategoryPlot cannot be cast to org.jfree.chart.plot.XYPlot
Je pense que le problème est probablement avec le code, mais je ne connais pas Jfreechart...
P.S ci-dessous se trouve le code du rapport, un très simple pour la démonstration :