2
如何訂閱給定的JFreeChart對象以通知系列集的更改,即插入的新系列或添加到系列中的新數據點?JFreeChart - 監聽對系列的更改
如何訂閱給定的JFreeChart對象以通知系列集的更改,即插入的新系列或添加到系列中的新數據點?JFreeChart - 監聽對系列的更改
爲數據集:
Dataset coll = new XYSeriesCollection();
coll.addChangeListener(new DatasetChangeListener() {
@Override
public void datasetChanged(DatasetChangeEvent arg0) {
// TODO Auto-generated method stub
}
});
或爲JFreeChart的本身:
JFreeChart chart = createChart();
chart.addChangeListener(new ChartChangeListener() {
@Override
public void chartChanged(ChartChangeEvent arg0) {
// TODO Auto-generated method stub
}
});
而且我相信,這也適用於在之間的地塊,並在年底的系列。
編輯:只聽取添加/刪除系列:
final XYSeriesCollection coll = new XYSeriesCollection();
coll.addChangeListener(new DatasetChangeListener() {
private int numberOfSeries = -1;
@Override
public void datasetChanged(DatasetChangeEvent arg0) {
int numberOfSeriesNew = coll.getSeriesCount();
if (numberOfSeriesNew == numberOfSeries) {
// no series was added/removed
} else if (numberOfSeriesNew < numberOfSeries) {
// series was removed
numberOfSeries = numberOfSeriesNew;
} else {
// series was added
numberOfSeries = numberOfSeriesNew;
}
}
});
我只想知道,如果加入或者不是一個新的系列。有沒有辦法傾聽這些事件? – Bober02 2012-08-14 09:38:24
是的,使用'DatasetChangeListener'就像我上面顯示的那樣。因爲我認爲系列內的更改也會傳播到DatasetChangeListener,因此您可以只監視集合中的系列數量(如果它已更改,則會添加/刪除系列)。您可以使用'arg0.getSeries()'來查看添加/刪除了哪個系列。 – brimborium 2012-08-14 09:46:07
@ Bober02看我的編輯。 – brimborium 2012-08-14 09:52:23