2009-10-02 15 views
8

Czy istnieje sposób w JFreeChart do określenia z ChartMouseEvent, że x, współrzędne Y (w przestrzeni kreślenia) mysz się skończy? Próbowałem użyć wartości celownika domeny, ale wydaje się to niedokładne i opóźnia faktyczne zdarzenie myszy. koordynujeJFreeChart uzyskać współrzędne myszy

Dzięki,

Jeff

Odpowiedz

14

Mouse od getTrigger() są względem ChartPanel więc trzeba je konwertować:

Point2D p = chartPanel.translateScreenToJava2D(mouseChartEvent.getTrigger().getPoint()); 
Rectangle2D plotArea = chartPanel.getScreenDataArea(); 
XYPlot plot = (XYPlot) chart.getPlot(); // your plot 
double chartX = plot.getDomainAxis().java2DToValue(p.getX(), plotArea, plot.getDomainAxisEdge()); 
double chartY = plot.getRangeAxis().java2DToValue(p.getY(), plotArea, plot.getRangeAxisEdge()); 
+0

Dzięki. Nie mogłem się zorientować, jaki był spór o fabułę. Pracował jak urok, doceniam to. –

+5

Wygląda na to, że jedna warstwa konwersji jest za duża. Otrzymuję niepoprawne wyniki, jeśli "ChartPanel" został skalowany z domyślnych wymiarów. Usunięcie kroku 'translateScreenToJava2D' i podanie punktu z' MouseEvent.getPoint() 'bezpośrednio do' java2DToValue' również daje prawidłowe wartości. –

+0

dzięki! szukam tego samego – bjarven

Powiązane problemy