Добавлена повторяющаяся серия JavaFX
В настоящее время я изучаю JavaFX и пытаюсь создать приложение, которое показывает линейную диаграмму и позволяет пользователю изменять определенные переменные, которые затем изменяют нанесенную линию. Я делаю это, удаляя ряд (и точки данных в пределах ряда), а затем повторно заполняя ряд и добавляя их снова, как показано ниже.
public void plot(double[] xArr, double[] yExactArr, double[] yApproxArr) {
linePlot.getData().clear();
if (!exactValues.getData().isEmpty()) {
exactValues.getData().remove(0, xArr.length - 1);
approxValues.getData().remove(0, xArr.length - 1);
}
for (int i = 0; i < xArr.length; i++) {
exactValues.getData().add(new XYChart.Data(xArr[i], yExactArr[i]));
approxValues.getData().add(new XYChart.Data(xArr[i], yApproxArr[i]));
}
linePlot.getData().addAll(exactValues, approxValues);
mainStage.show();
}
Однако, когда я делаю это, я получаю следующую ошибку:
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added
Это происходит, как толькоaddAll()
называется второй раз. Когда я печатаюtoString()
функцияlinePlot.getData()
после звонкаclear()
, он печатает пустой массив, так что, похоже, не должно быть проблемы. Я предполагаю, что это неправильный способ изменить линию, но это моя новичковая попытка. Кажется, что я должен иметь возможность просто изменить данные в серии (не удаляя и не читая их), но тогда мой график не обновляется.
Есть идеи / рекомендации?