Vaadin:如何更新图表的数据?

问题描述

我很难找到用新数据更新图表的方法。 使用以下方法将数据添加到图表:

Configuration conf = chart.getConfiguration();
conf.addSeries(series);

但是没有对应的“remove(series)”!?! 因此,如果我想更新正在显示的数据并添加一个系列,我实际上会向图表添加另一条线(或条形图或我选择的任何可视化),这显然不是我想要/需要的。

我第一次尝试克服这个问题是获取旧数据系列并将它们从图表中删除,但是使用 getSeries() 我只能获得现有系列的不可修改副本,因此该尝试结束在 java.lang.UnsupportedOperationException 中。

因此我的问题是:如何说服现有图表删除所有旧数据系列? 请不要告诉我,我每次都需要重新创建整个图表组件!

解决方法

您没有提到任何版本,但至少过去可以从 DataSeries 本身中删除项目。因此,您可以清空并重新填充它,而不是删除该系列。设置时保存系列参考。或者,您可以例如从不可修改的列表中创建一个新的 ArrayList,在那里进行更改,然后再次设置系列(使用 setSeries,而不是 addSeries)。然后调用 chart.drawChart(); 应该触发重新绘制。