能否检测到 JFreeChart ChartPanel 何时更改了其缩放比例?

Can one detect when a JFreeChart ChartPanel has changed its zoom?

在 JFreeChart 应用程序中,应用程序是否可以检测到其 ChartPanel 对象何时更改了其缩放状态,即它已被放大或缩小?是否可以安装一个侦听器来检测这种缩放状态变化?

郑重声明,我使用的是 JFreeChart-FSE ("future state edition") 库,所以如果在常规库中无法做到这一点,可以在 FSE 中完成吗?

您可以尝试向 ChartPanel 的 Plot 添加一个侦听器。 该图具有方法 addChangeListener()。

所以,当你的图被加载时,你计算原始缩放状态。 您可以将缩放状态与绘图中的可见数据相关联。 例如,可以根据实际的 lowerBound 和 upperBound 值计算域 Axis 上的缩放状态,如下所示:

    double lowerBound = yourChartPanel.getXYPlot().getDomainAxis().getLowerBound();
    double upperBound = yourChartPanel.getXYPlot().getDomainAxis().getUpperBound();

当您的侦听器被调用时,您只需检查自上次以来缩放状态是否发生了变化。