【问题标题】:JFreeChart get mouse coordinatesJFreeChart 获取鼠标坐标
【发布时间】:2010-12-03 11:36:19
【问题描述】:

在 JFreeChart 中有没有一种方法可以从 ChartMouseEvent 中确定鼠标是否在 x,y 坐标(在绘图空间中)?我尝试使用域十字准线值,但这似乎不准确并且滞后于实际的鼠标事件。

谢谢,

杰夫

【问题讨论】:

    标签: java mouseevent jfreechart


    【解决方案1】:

    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 参数应该是什么。工作就像一个魅力,欣赏它。
    • 这里好像多了一个转换层。如果 ChartPanel 已从其默认尺寸缩放,我会得到不正确的结果。在这种情况下,删除translateScreenToJava2D 步骤并将MouseEvent.getPoint() 中的点直接提供给java2DToValue 也会给出正确的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2010-09-09
    • 1970-01-01
    • 2015-11-03
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多