10.2 知识背景
10.2.1 事件监听
JFreeChart使用监听机制来响应其他chart组件改变的响应。例如,不论数据源在何时发生更新,一个DatasetChangeEvent事件总被发送给已注册进数据源的监听器。
响应触发发生一系列事件:
- 图区监听到数据源改变的通知。如果需要更新轴的值,然后将PlotChangeEvent事件通知所有注册的监听器。
- 图表监听到图区更改事件的通知,然后将ChartChangeEvent事件通知给所有注册的监听器。
- 最后,ChartPanel接受到该面板上显示的图表的更改事件,ChartPanel根据响应的事件画出响应的图表——完全重新画,而不是仅仅更新数据。
所有图表或者其他子控件改变发生的事件过程都遵循上面的过程。
10.2.2 性能优化
关于性能优化,我们必须明白JFreeChart不会产生实时图表。每次数据源的更新,ChartPanel都需要重新画全部的图表。
性能优化通常是非常困难的。 比如,JFreeChart调用图像2D的API提取最新变更的点,从而只画更新的点。我们使用JFreeChart完成这个实时过程的实例将限制了“每秒产生页面”的数量。产生数量的大小是否是一个瓶颈的关键问题,主要取决我们我们画图表所依赖的数据,应用的环境和操作环境。