jfreechart chartpanel自动调整大小显示所有缩放图表

时间:2014-01-19 01:39:50

标签: java swing zoom jscrollpane jfreechart

enter image description here

我创建了一个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);

        }

1 个答案:

答案 0 :(得分:1)

我不确定如何有效地混合缩放和滚动。没有Minimal, Complete, Valid Example

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

  • 在提及here的几种控制图表大小的方法中,由于here提到的原因,覆盖getPreferredSize()似乎是最好的方法。

  • 同时考虑延长ChartPanel以实施Scrollable界面,如上所述here