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

时间:2016-12-26 20:21:39

标签: java swing jfreechart zooming

基本上我想要放大折线图并放大(总共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;
    }

1 个答案:

答案 0 :(得分:4)

每个按钮的Action实现应调用ChartPanel使用的相应方法来创建缩放命令的弹出菜单。 actionPerformed()的实现是可用缩放功能的便捷指南。例如,ZOOM_IN_DOMAIN_COMMAND是通过调用zoomInDomain()来处理的。基于此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;
}

zoomed image

相比之下,原始example中的createZoom()方法显示了如何唤起ChartPanel方法restoreAutoBounds(),这会恢复两个轴上的自动范围计算。< / p>

image