Récupérer coordonnées lors d'un clique sur graphique JFreeChart

Signaler
Messages postés
141
Date d'inscription
samedi 4 février 2012
Statut
Membre
Dernière intervention
3 avril 2013
-
lahcen_3333
Messages postés
3
Date d'inscription
mardi 10 mars 2020
Statut
Membre
Dernière intervention
13 mars 2020
-
Bonjour,

j'aimerai savoir s'il est possible de récupérer les coordonnées (abscisse et ordonnée) de l'endroit où on clique avec la souris sur un graphique JFreeChart.

J'imagine qu'il faut mettre un écouteur sur la souris ce qui ne devrait pas poser de problème mais je ne vois pas comment faire ensuite.

Savez-vous si cela est possible et comment faire ?

Merci.
Bonne journée.

3 réponses

Messages postés
141
Date d'inscription
samedi 4 février 2012
Statut
Membre
Dernière intervention
3 avril 2013

J'arrive à récupérer les coordonnées de la souris n'importe où dans ma fenêtre sauf dans le ChartPanel en utilisant l'écouteur :

frame1.addMouseListener(this);


J'ai donc essayé avec :
chart1.addChartMouseListener(this);


mais cette méthode n'est apparemment pas définie pour JFreeChart.

Savez-vous comment faire ?
salut
j'ai le meme problème et j'èspére que quelqun m'a aidé pour pouvoir de récupérer les coordonnées (abscisse et ordonnée) de l'endroit où on clique avec la souris sur un graphique JFreeChart.
merci d'avanve
Messages postés
3
Date d'inscription
mardi 10 mars 2020
Statut
Membre
Dernière intervention
13 mars 2020

essayez de réaliser ce code:
chartPanel.addChartMouseListener(new ChartMouseListener() {

        	@Override
            public void chartMouseClicked(ChartMouseEvent cme) {
        		
                Point2D po = chartPanel.translateScreenToJava2D(cme.getTrigger().getPoint());
                Rectangle2D plotArea = chartPanel.getScreenDataArea();
               // XYPlot plot = (XYPlot) chart.getPlot(); // your plot
               double chartX = plot.getDomainAxis().java2DToValue(po.getX(), plotArea, plot.getDomainAxisEdge());
             double   chartY = plot.getRangeAxis().java2DToValue(po.getY(), plotArea, plot.getRangeAxisEdge());
                System.out.println("X:" + chartX + ", Y:" + chartY);

                
            }
 });