我正在尝试使用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)
我还没有解决我的第一个问题,即仅创建一个列表,然后仅更改所需的数据点(尽管我在这里可能完全错了)。试试看,我很想听听这个消息!