8
JFreeChartでは、ChartMouseEventからx、y座標が(プロット空間内で)マウスの上にあることを判別する方法はありますか?私はドメインの十字線の値を使用してみましたが、それは不正確で、実際のマウスイベントに遅れているようです。JFreeChartはマウス座標を取得します
おかげで、
ジェフマウスはgetTrigger()
から座標
JFreeChartでは、ChartMouseEventからx、y座標が(プロット空間内で)マウスの上にあることを判別する方法はありますか?私はドメインの十字線の値を使用してみましたが、それは不正確で、実際のマウスイベントに遅れているようです。JFreeChartはマウス座標を取得します
おかげで、
ジェフマウスはgetTrigger()
から座標
は、あなたがそれらを変換する必要があるので、ChartPanelに対して相対的です:
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());
感謝。私はplotAreaの議論が何を想定しているのか理解できませんでした。魅力のように働いて、それを感謝します。 –
ここでは1つの変換レイヤーが多すぎるようです。 'ChartPanel'がデフォルトの大きさから拡大縮小されていると、これで不正な結果が得られます。 'translateScreenToJava2D'ステップを削除し、' MouseEvent.getPoint() 'から' java2DToValue'に直接指定すると、その場合も正しい値が得られます。 –
ありがとう!同じものを探している – bjarven