Java jfreechart图表面板自动调整大小显示所有缩放的图表

Java jfreechart图表面板自动调整大小显示所有缩放的图表,java,swing,zooming,jscrollpane,jfreechart,Java,Swing,Zooming,Jscrollpane,Jfreechart,我创建了一个jfrechart作为第一张图片。用鼠标滚轮缩放后,显示为第二张图片。如何调整ChartPanel的大小,使其能够显示所有缩放的图表 我将ChartPanel放在一个JScrollPane中,并在mouseWheelMoved事件中更新了它的首选大小,如下所示。它没有像我预期的那样工作。它没有显示整个图表,轴的字体大小也被放大到了不合适的大小 public void mouseWheelMoved(MouseWheelEvent e) { d

我创建了一个jfrechart作为第一张图片。用鼠标滚轮缩放后,显示为第二张图片。如何调整ChartPanel的大小,使其能够显示所有缩放的图表

我将ChartPanel放在一个JScrollPane中,并在mouseWheelMoved事件中更新了它的首选大小,如下所示。它没有像我预期的那样工作。它没有显示整个图表,轴的字体大小也被放大到了不合适的大小

        public void mouseWheelMoved(MouseWheelEvent e) {

            double factor = _chartPanel.getZoomInFactor();
            Dimension dim = _chartPanel.getPreferredSize();
            dim.width =(int)( dim.width*(1.0+factor)+1);
            _chartPanel.setDomainZoomable(false);
            _chartPanel.setPreferredSize(dim);;
            _chartPanel.revalidate();
            _chartPanel.setDomainZoomable(true);

        }

我不知道如何有效地混合缩放和滚动。没有一个

  • 您可以使用
    restoreautobunds()
    恢复原始缩放状态,如图所示

  • 在前面提到的几种控制图表大小的方法中,基于上面提到的原因,重写
    getPreferredSize()
    似乎是最好的方法

  • >P>还考虑扩展<代码> ChartPanel <代码>来实现<代码>可滚动的接口,如所讨论的。


请编辑您的问题,包括一个显示您当前方法的问题。