I'm trying to refresh a chart in JavaFX but I get the error :
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added
Here is my code :
private XYChart.Series<Number, Number> frequenciesSource;
private double timeStamp=System.currentTimeMillis();
private LineChart<Number, Number> lineChart;
(...)
Platform.runLater(()
-> {
lineChart.getData().remove(frequenciesSource);
if (0!=frequenciesSource.getData().size()) {
System.out.println("FrequenceyCharts.update : frequenciesSource.size !=0 => LET'S EMPTY IT !");
frequenciesSource.getData().remove(0, frequenciesSource.getData().size());
} else {
System.out.println("FrequenceyCharts.update : frequenciesSource.size == 0");
System.out.println("FrequencyCharts.update : linechart contains frequenciesSource ? "+lineChart.getData().contains(frequenciesSource));
int dotsNumber=0;
for (float[] chartPoint:chartPoints) {
dotsNumber+=1;
if (dotsNumber<100 && 0!=chartPoint[0]) {
frequenciesSource.getData().add(new XYChart.Data<Number, Number>((Number) chartPoint[0],(Number) chartPoint[1]));
}
}
System.out.println("FrequencyCharts.update : linechart empty ? "+lineChart.getData().isEmpty());
lineChart.getData().add(frequenciesSource);
}
);
And, here is the result displayed in the console :
FrequenceyCharts.update : frequenciesSource.size == 0
FrequencyCharts.update : linechart contains frequenciesSource ? false
FrequencyCharts.update : linechart empty ? true
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added
The line identified as causing the problem is :
lineChart.getData().add(frequenciesSource);
My serie frequenciesSource
is not anymore in my lineChart and the lineChart is empty. So, why do I get this error "Duplicate series added" when I try to add it ?
Thank you for your help. :-)