单击 JfreeChart 折线图按钮上的放大和缩小功能?

Zoom In and Zoom out functionality on a button click on JfreeChart line graph?

基本上我想要放大和缩小折线图(总共 4 个按钮,2 个用于 X 轴(放大和缩小),另外两个用于 Y 轴)沿任意轴单击按钮就像在负 x 轴和负 Y 轴区域上绘制的图形一样,取决于数据点,然后单击按钮时图形应该根据按钮单击沿着负 x 轴或负 Y 轴放大和缩小。

我怎样才能做到这一点?任何带有详细解释的示例代码都非常有帮助!!

 private JButton createZoom()
 {
        final JButton auto = new JButton("ZOOMIN");
        auto.setActionCommand("ZOOM_IN_DOMAIN");
        auto.addActionListener(new ChartPanel(chart));
        return auto;
    }

每个按钮的 Action implementation should invoke the corresponding method used by ChartPanel to create it's popup menu of zoom commands. The implementation of actionPerformed() is a convenient guide to the available zooming functionality. For example, the ZOOM_IN_DOMAIN_COMMAND is handled by invoking zoomInDomain(). Based on this example,典型的 Zoom X 相对于原点的处理程序如下所示:

private JButton createZoom() {
    final JButton zoomX = new JButton(new AbstractAction("Zoom X") {

        @Override
        public void actionPerformed(ActionEvent e) {
            chartPanel.zoomInDomain(0, 0);
        }
    });
    return zoomX;
}

如果默认的zoomPoint就足够了,你可以使用图表面板的实现:

private JButton createZoom() {
    final JButton zoomX = new JButton("Zoom X");
    zoomX.setActionCommand(ChartPanel.ZOOM_IN_DOMAIN_COMMAND);
    zoomX.addActionListener(chartPanel);
    return zoomX;
}

相比之下,原example中的createZoom()方法展示了如何唤起[=13​​=]方法restoreAutoBounds(),它恢复了两个轴上的自动范围计算.