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

标签 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;
    }

最佳答案

每个按钮的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(),该方法恢复两个轴上的自动范围计算。

image

关于java - 单击 JfreeChart 折线图按钮上的放大和缩小功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41335942/

相关文章:

Java + Eclipse : The method computeIfAbsent(String, (<no type> k) -> {}) 未定义该类型

java - 从 MySQL php 中的特定列获取最大 ID 和最小 ID

java - 如何解决 IllegalFormatConversionException

java - drjava JFrame 帮助对象在 KeyEvent 按钮释放后不会继续移动

java - Jfreechart:如何制作 x 轴为字符串、y 轴为整数的直方图?

java - ActionContext.getContext().getSession() 返回 null

Java JDialog 交互,无需关注 macOS

java - 如何在java布局中左对齐标签?

java - 将 Jfreechart 组件中的点转换为屏幕值

java - 停止 Swing 组件在发生 ChangeEvent 时重新定位到初始坐标?