JFreeChart:在鼠标单击时显示散点图上的数据

时间:2010-10-11 20:18:30

标签: java jfreechart

我想在使用JFreeChart创建的散点图上显示给定点的x,y数据。我也在网上和开发人员的指南中查看,但仍然无法做到这一点。

我使用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 个答案:

答案 0 :(得分:3)

啊,所有的红色都是因为我没有检查它是否是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));
  }
 }

这似乎现在有用了!