gpt4 book ai didi

添加了 JavaFX 重复系列

转载 作者:搜寻专家 更新时间:2023-11-01 02:06:18 26 4
gpt4 key购买 nike

我目前正在学习 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() 时会发生这种情况。当我在调用 clear() 后打印 linePlot.getData()toString() 函数时,它打印了一个空数组,所以看起来好像应该没有问题。我的猜测是这不是改变线路的正确方法,但这是我的新手尝试。似乎我应该能够只更改系列中的数据(无需删除和读取它们),但我的情节不会更新。

有什么想法/建议吗?

最佳答案

如果您有以下情况,也可能会发生此问题:

animated="true"

为您的折线图设置。

XYChart 类检查重复项时,它会从 displayedSeries 中获取所有系列,并将它们与您现有的数据系列进行比较。在此期间,如果您清除了数据,由于长时间的淡化效果,该系列仍将处于displayedSeries中,并导致“添加重复系列”错误。

如果是这样,只需设置:

animated="false"

关于添加了 JavaFX 重复系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com