Bonjour,
Je voudrais intégrer un graphique générer à l'aide de la laibrairie JFreeChart à une page acceuil.jsp.
Je crée une classe ThreeBarsPanel.java qui représente mon graphique.

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.geom.Ellipse2D;
import java.awt.Color;
 
public class ThreeBarsPanel extends JPanel {
	private int _ltsV;
	private int _htsV;
	private int _ltsNV;
	private int _htsNV;
	private String title;
 
	public ThreeBarsPanel(){
		super();
		final double[][] data = new double[3][3];
		data[0][0] = 25;
		data[0][1] = 12;
		data[0][2] = 7;
		data[1][0] = 15;
		data[1][1] = 8;
		data[1][2] = 9;
		data[2][0] = 10;
		data[2][1] = 6;
		data[2][2] = 18;
		Comparable[] number = new Comparable[3];
		number[0] = 0;
		number[1] = 10;
		number[2] = 20;
		Comparable[] bases = new Comparable[3];
		bases[0] = "HTS";
		bases[1] = "LTS";
		bases[2] = "DMPK";
		final CategoryDataset dataset = DatasetUtilities.createCategoryDataset(number,bases,data);
		JFreeChart chart = createCombinedChart(dataset);
		final ChartPanel panel = new ChartPanel(chart);
		panel.setPreferredSize(new java.awt.Dimension(100, 270));
		//setContentPane(panel);
		add(panel);
	}
 
	 public JFreeChart createCombinedChart(CategoryDataset dataset) {
		 JFreeChart chart = ChartFactory.createBarChart(title,
                 "Number",
                 null,
                 dataset,
                 PlotOrientation.HORIZONTAL,
                 true,
                 true,
                 false);
 
	        chart.setBackgroundPaint(Color.white);
 
	        final CategoryPlot plot = (CategoryPlot) chart.getPlot();
	        plot.setForegroundAlpha(0.5f);
	        plot.setBackgroundPaint(Color.lightGray);
	        plot.setDomainGridlinePaint(Color.white);
	        plot.setRangeGridlinePaint(Color.white);
 
	        final CategoryAxis domainAxis = plot.getDomainAxis();
	        domainAxis.setLowerMargin(0.0);
	        domainAxis.setUpperMargin(0.0);
 
	        // change the auto tick unit selection to integer units only...
	        final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
	        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
 
	        final CategoryItemRenderer renderer = plot.getRenderer();
	        renderer.setItemLabelsVisible(true);
	        renderer.setSeriesPaint(0,Color.GREEN);
 
	        renderer.setSeriesPaint(2,Color.GREEN);
	        renderer.setSeriesPaint(1,Color.BLUE);
	        renderer.setShape(new Ellipse2D.Double(-3, -3, 6, 6));
	        return chart;
 
	    }
Puis pour appeler cette classe, j'avais le choix soit je l'instancie dans une nouvelle page graphic.jsp puis je l'intégre dans ma page acceuil.jsp avec une balise image
Code :

<img src="graphics.jsp">

soit je l'instancie directement dans ma page acceuil.jsp
Code :

<%ThreeBarsPanel demo = new ThreeBarsPanel();%>

mais dans les deux cas ça ne marche pas, ai-je oublié quelque chose?!!