能否检测到 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();
当您的侦听器被调用时,您只需检查自上次以来缩放状态是否发生了变化。
在 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();
当您的侦听器被调用时,您只需检查自上次以来缩放状态是否发生了变化。