在JFreeChart应用程序中,应用程序是否可以检测其ChartPanel对象何时更改其缩放状态,即它是否已放大或缩小?是否可以安装将检测此类缩放状态更改的侦听器?
为了记录,我正在使用JFreeChart-FSE(“未来状态版”)库,所以如果在常规库中无法做到这一点,可以在FSE中完成吗?
答案 0 :(得分:1)
您可以尝试将侦听器添加到ChartPanel的Plot中。 该图的方法是addChangeListener()。
因此,当您的绘图加载时,您计算原始缩放状态。 您可以将缩放状态与绘图中的可见数据相关联。 例如,域Axis上的缩放状态可以从实际的lowerBound和upperBound值计算得出:
double lowerBound = yourChartPanel.getXYPlot().getDomainAxis().getLowerBound();
double upperBound = yourChartPanel.getXYPlot().getDomainAxis().getUpperBound();
调用侦听器时,您只需检查自上次以来缩放状态是否发生了变化。