JFreeChart: отображение данных на точечной диаграмме одним щелчком мыши - PullRequest
0 голосов
/ 12 октября 2010

Я хотел бы отобразить данные x, y для данной точки на точечной диаграмме, которую я создал с помощью JFreeChart.Я посмотрел в Интернете, а также в руководстве разработчика, и все еще не могу сделать это.

Я создаю диаграмму рассеяния, используя ChartFactory

chart = ChartFactory.createScatterPlot( title, xlabel, ylabel, data, plotOrientation.VERTICAL,
    false, true, false );

Я попытался реализовать событие chartMouseClicked.

public void chartMouseClicked(ChartMouseEvent event) {

 ChartEntity entity = event.getEntity();

 If (entity != null) {
    XYItemEntity ent = (XYItemEntity) entity;

    int sindex = ent.getSeriesIndex();
    int iindex = ent.getItem();

    System.out.println("x = " + data.getXValue(sindex, iindex));
 }
}

, где data - это реализация XYDataSet, связанная ссюжет.

Это, кажется, не дает мне никаких цифр.Что я делаю не так?

Спасибо

1 Ответ

3 голосов
/ 12 октября 2010

Ах, все красное было потому, что я не проверял, является ли это экземпляром XYItemEntity.

Измененный код:

public void chartMouseClicked(ChartMouseEvent event) {

 ChartEntity entity = event.getEntity();

 if (entity != null && entity instanceof XYItemEntity) {
   XYItemEntity ent = (XYItemEntity) entity;

   int sindex = ent.getSeriesIndex();
   int iindex = ent.getItem();

   System.out.println("x = " + data.getXValue(sindex, iindex));
   System.out.println("y = " + data.getYValue(sindex, iindex));
  }
 }

Кажется, теперь это работает!

...