Adicionado JavaFX Duplicate Series
Atualmente, estou aprendendo JavaFX e estou tentando criar um aplicativo que mostre um gráfico de linhas e permita que o usuário altere determinadas variáveis que alteram a linha plotada. A maneira como faço isso é removendo a série (e os pontos de dados dentro da série), recarregando a série e adicionando-a novamente, como mostrado abaixo.
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();
}
No entanto, quando faço isso, estou recebendo o seguinte erro:
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added
Isso ocorre assim queaddAll()
é chamado pela segunda vez. Quando imprimo otoString()
função delinePlot.getData()
depois de ligarclear()
, ele imprime uma matriz vazia; portanto, parece que não deve haver um problema. Meu palpite é que essa não é a maneira correta de mudar de linha, mas essa é minha tentativa de novato. Parece que eu deveria ser capaz de alterar os dados dentro da série (sem removê-los e lê-los), mas meu gráfico não é atualizado.
Alguma idéia / recomendação?