我正在尝试使用JavaFX中的LineChart向用户显示数据。我有一个Float数组(不是原始对象,如Float[]中的对象),可以随时添加,长度可以在512到4096点之间。

所有有关LineChart的示例和帮助均表明,必须使用XYChart.Series.getData().add(new XYChart.Data(X, Y))逐点添加数据,其中X为索引,Y为Float [index]的值。这确实非常慢,因为这种方法需要遍历整个数组,但是它可以工作。我希望LineChart更新为30FPS,但现在小于1FPS:/

有没有一种更快的方法,我可以在JavaFX LineChart类上扔一个数组并绘制它而无需遍历和添加每个点?

编辑(找到解决方案):

srm,该概念有效!

在第一次运行时,只需用XYChart.Series填充new XYChart.Data(X,Y)即可。然后遍历并使用XYChart.Series.get(index).setYData(NewValue)进行获取和更新

最佳答案

好的,由于无法阅读,不得不删除我以前的帖子。

您是否尝试过使用XYChartBuilder?看起来您可以使用在运行时可能会更改的数据点的初始列表
数据(ObservableList> x)
我还没有解决我的第一个问题,即仅创建一个列表,然后仅更改所需的数据点(尽管我在这里可能完全错了)。试试看,我很想听听这个消息!

09-11 20:17