Java和JFreechart:仅从DatasetChangeEvent获取修改的条目

时间:2011-09-07 12:04:50

标签: java jfreechart changelistener

我正在使用DatasetChangeListener来监控某些XYSeriesCollection的修改,因为一个系列中的更改必须反映到我应用程序图表的其他系列中。

public void datasetChanged(DatasetChangeEvent arg0) {
     XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
     System.out.println(d.getGroup().getID());
}

我正在使用DatasetGroup来存储唯一标识数据集的字符串。

现在重点是,我想知道发生更改的数据集的单个条目,否则我被迫遍历所有数据集并检查所有数据。有没有办法做到这一点?

例如,我想知道在第三个元素的y值上,集合中的系列1发生了更改。这可能吗?

2 个答案:

答案 0 :(得分:2)

我部分解决了使用SeriesChangeListener并为每个系列添加描述字符串,但我仍然需要检查系列内的所有值。 这是一个比使用DatasetChangeListener更好的解决方案(我不需要检查数据集中所有系列的所有值),但它并不完美。

答案 1 :(得分:2)

getDataset()返回的Dataset在此上下文中可能没用。相反,请查看SeriesChangeEvent的来源。您可能必须覆盖XYSeries子类中的一个或多个add()方法来跟踪更改详细信息。