2012-08-14 22 views

回答

2

爲數據集:

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; 
     } 
    } 
}); 
+0

我只想知道,如果加入或者不是一個新的系列。有沒有辦法傾聽這些事件? – Bober02 2012-08-14 09:38:24

+0

是的,使用'DatasetChangeListener'就像我上面顯示的那樣。因爲我認爲系列內的更改也會傳播到DatasetChangeListener,因此您可以只監視集合中的系列數量(如果它已更改,則會添加/刪除系列)。您可以使用'arg0.getSeries()'來查看添加/刪除了哪個系列。 – brimborium 2012-08-14 09:46:07

+0

@ Bober02看我的編輯。 – brimborium 2012-08-14 09:52:23