任何人都可以指导我如何从DynamicTimeSeriesCollection
删除系列文章?
在此示例中,我想删除系列S1
DynamicTimeSeriesCollection dataset = new DynamicTimeSeriesCollection(50, 120, new Second());
dataset.addSeries(gaussianData(), 0, "S1");
dataset.addSeries(gaussianData(), 1, "S2");
我不知道该怎么做。
非常感谢。
答案 0 :(得分:1)
DynamicTimeSeriesCollection
将值存储在ValueSequence
数组中。默认情况下,ValueSequence
无法删除,但由于ValueSequence
受到保护,您可以使用自己的DynamicTimeSeriesCollection
方法继承removeSeries
,看看是否能解决您的问题。
查看DynamicTimeSeriesCollection#addSeries
并反转步骤,请记得最后致电fireSeriesChanged()
。
答案 1 :(得分: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();
}