2014-01-13 52 views
0

任何人都可以引導我如何從DynamicTimeSeriesCollection刪除系列?如何從DynamicTimeSeriesCollection中刪除系列?

在這個例子中,我想刪除系列S1

DynamicTimeSeriesCollection dataset = new DynamicTimeSeriesCollection(50, 120, new Second()); 
dataset.addSeries(gaussianData(), 0, "S1"); 
dataset.addSeries(gaussianData(), 1, "S2"); 

我不知道該怎麼做。

非常感謝。

回答

0

感謝GrahamA的回答。 因爲我需要觸摸seriesCount是私人的,所以我必須創建一個名爲DynamicTimeSeriesCollectionModified的新類(從DynamicTimeSeriesCollection複製粘貼)並編寫我自己的removeSeries,它的工作原理。

public void deleteSeries(int seriesNumber) { 

     //remove item in valueHistory array 
     List<ValueSequence> listValueHistory = new ArrayList<ValueSequence>(Arrays.asList(valueHistory)); 
     listValueHistory.remove(seriesNumber); 
     valueHistory = listValueHistory.toArray(valueHistory); 

     //remove item in seriesKeys array 
     List<Comparable> listSeriesKeys = new ArrayList<Comparable>(Arrays.asList(seriesKeys)); 
     listSeriesKeys.remove(seriesNumber); 
     seriesKeys = listSeriesKeys.toArray(seriesKeys);     

     //update seriesCount 
     seriesCount--; 
     fireSeriesChanged(); 

    } 
1

DynamicTimeSeriesCollection將值存儲在ValueSequence的數組中。默認情況下,ValueSequence無法刪除,但由於ValueSequence受保護,因此您可以使用自己的removeSeries方法繼承DynamicTimeSeriesCollection並查看是否可以解決您的問題。

看看DynamicTimeSeriesCollection#addSeries並扭轉步驟,記得在最後打電話fireSeriesChanged()

+0

因爲我需要去觸摸seriesCount是私有的,所以我必須創建一個新的類名爲DynamicTimeSeriesCollectionModified(從DynamicTimeSeriesCollection複製粘貼)和寫我自己的removeSeries和它的作品。感謝GrahamA。 –