Обработка редактирования интерактивной диаграммы JFreeChart ChartMouseEvent - PullRequest
2 голосов
/ 25 августа 2011

Я пытаюсь перехватить ChartMouseEvent, чтобы изменить XYSeries объекта JFreeChart, созданного с помощью метода ChartFactory.createXYLineChart (и отображаемого с помощью JDialog).

XYLineChart

Iполучить координату события мыши успешно следующим образом:

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

Источник системы координат (0,0) расположен на красном квадрате на рисунке.Теперь я хотел бы рассчитать, в каком интервале находится мышь. Для этого мне нужно:

  1. верхняя левая координата серой диаграммы (зеленый квадрат)
  2. высота и ширина серого графика

Как я могу получить эти значения?

Примечание: я новичок в JFreeChart.Если я делаю это неправильно, и есть лучший способ достичь этих целей, пожалуйста, направьте меня в правильном направлении.

1 Ответ

1 голос
/ 25 августа 2011

Вы визуализируете сюжет через ChartPanel?

Если это так, взгляните на ChartPanel.getChartRenderingInfo().getPlotInfo().getDataArea().Это должно вернуть Rectangle2D, с которым легко работать.

...