Bonjour,

j'affiche un graphique de point grâce à XYPlot de JFreeChart.
J'arrive à récupérer les coordonnées des point où l'utilisateur clique.

J'aimerai pouvoir afficher ces points au fur et à mesure.
Mon graphique est dans un ChartPanel.
J'ai essayé de faire chartPanel.repaint(); mais ça ne fonctionne pas.

Je mets ma fonction d'affichage du graphique pour mieux comprendre :
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
 
private JFreeChart chartGeo;
private XYPlot plot2;
private XYPlot plot3;
 
public JFreeChart affichageGraphe(int nombrePoints, String[] bufferLecture){
 
		// Créer et afficher graphique XY
		XYSeries seriesGeo = new XYSeries("Serie1");
		XYSeries seriesGeo2 = new XYSeries("Serie2");
		XYSeries seriesPtsCliques = new XYSeries("Serie3");
 
		for (int i=13 ; i<nombrePoints ; i+=19)
		{
			double valeur1 = Double.parseDouble(bufferLecture[i]);	
			double valeur2 = Double.parseDouble(bufferLecture[i+1]);	
 
			seriesGeo.add(valeur1, valeur2);	
		} 
 
		for (int i=13 ; i<nombrePointsClique*2 ; i+=19)
		{
			seriesGeo.add(bufferClique[i], bufferClique[i+1]);	
		} 
 
 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
		XYDataset xyDatasetGeo = new XYSeriesCollection(seriesGeo);
		XYDataset xyDatasetGeo2 = new XYSeriesCollection(seriesGeo2);
		XYDataset xyDatasetPointsCliques = new XYSeriesCollection(seriesPtsCliques);
 
		chartGeo = ChartFactory.createScatterPlot("", "", "", xyDatasetGeo, PlotOrientation.VERTICAL, false, true, false);
 
 
		//3. Mise en place du nouvelle axe dans le diagramme.
		plot2 = (XYPlot) chartGeo.getPlot();
		plot2.setDataset(2, (XYDataset) xyDatasetGeo2);		
 
		//4.Rendu du tracé
		XYItemRenderer rendu2= new XYLineAndShapeRenderer(false,true);
		rendu2.setSeriesPaint(2, Color.green);
		plot2.setRenderer(2,rendu2);	
 
 
		//3. Mise en place du nouvelle axe dans le diagramme.
		plot3 = (XYPlot) chartGeo.getPlot();
		plot3.setDataset(3, (XYDataset) xyDatasetPointsCliques);		
 
		//4.Rendu du tracé
		XYItemRenderer rendu3= new XYLineAndShapeRenderer(false,true);
		rendu3.setSeriesPaint(3, Color.green);
		plot3.setRenderer(2,rendu3);
 
		return chartGeo;
	}
Ainsi que la fonction écoutant les clique sur le ChartPanel :
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
 
public void chartMouseClicked(ChartMouseEvent action) {
 
		ValueAxis xAxis = plot2.getDomainAxis();
		ValueAxis yAxis = plot2.getRangeAxis();
		double mouseX = xAxis.java2DToValue(action.getTrigger().getX(), chartPanel.getScreenDataArea(), plot2.getDomainAxisEdge());
		double mouseY = yAxis.java2DToValue(action.getTrigger().getY(), chartPanel.getScreenDataArea(), plot2.getRangeAxisEdge());
 
		System.out.println("mouseX : " + mouseX);
		System.out.println("mouseY : " + mouseY);
 
		bufferArpentage[emplacementCurseur ] = mouseX;
		bufferArpentage[emplacementCurseur +1] = mouseY;
 
		emplacementCurseur += 2;
		nombrePointsClique++;	
 
		chartGeo = affichageGraphe(nombreLignes, contenuFichier);
 
		this.repaint();
                chartPanel.repaint();
	}
Savez-vous comment faire ?

Merci.
Bonne journée.