JFreeChart交互式图表编辑处理ChartMouseEvent

我试图拦截ChartMouseEvent以修改使用ChartFactory.createXYLineChart方法创建的JFreeChart对象的XYSeries(并使用JDialog显示)。

XYLineChart

我通过这种方式成功检索鼠标事件的坐标:

public void chartMouseMoved(ChartMouseEvent arg0) { int x = arg0.getTrigger().getX(); int y = arg0.getTrigger().getY(); 

坐标系(0,0)的原点位于图片中的红色方块。 现在,我想计算鼠标在哪个区间。为了做到这一点,我需要:

  1. 灰色图表的左上角坐标(绿色方块)
  2. 灰度图的高度和宽度

我怎样才能得到这个值?

注意:我是JFreeChart新手。 如果我做错了,并且有更好的方法来实现这些目标,请让我朝着正确的方向前进。

你是通过ChartPanel渲染情节吗?

如果是这样,请查看ChartPanel.getChartRenderingInfo().getPlotInfo().getDataArea() 。 这应该返回一个易于使用的Rectangle2D