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

yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013 - 22 mai 2012 à 10:13
lahcen_3333 Messages postés 3 Date d'inscription mardi 10 mars 2020 Statut Membre Dernière intervention 13 mars 2020 - 13 mars 2020 à 09:35
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

yannOpenGL Messages postés 141 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 3 avril 2013
22 mai 2012 à 11:43
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 ?
0
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
0
lahcen_3333 Messages postés 3 Date d'inscription mardi 10 mars 2020 Statut Membre Dernière intervention 13 mars 2020
Modifié le 13 mars 2020 à 09:36
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);

                
            }
 });
0
Rejoignez-nous