【问题标题】:jfreechart chartpanel auto resize show all zoomed chartjfreechart chartpanel 自动调整大小显示所有缩放图表
【发布时间】:2014-01-19 01:39:49
【问题描述】:

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

        }

【问题讨论】:

标签: java swing zooming jscrollpane jfreechart


【解决方案1】:

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

  • 可以使用restoreAutoBounds()恢复原来的缩放状态,如图here

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

  • 还可以考虑扩展ChartPanel 以实现Scrollable 接口,如here 所述。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2011-08-13
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多