【发布时间】:2021-12-11 16:13:43
【问题描述】:
我在ChartPanel 中嵌入了一个图表。首次渲染面板时,一切看起来都不错:
但是当大小改变时,面板内容被拉伸,使得文字更难阅读:
这就像 JFreeChart 正在预渲染显示,因此它可以快速将其绘制在屏幕上,这对于例如PNG 导出(我知道这是 JFreeChart 的作者 David Gilbert 想要保留的功能),但是当购物车尺寸变化太大时,显示效果不佳。
有没有办法告诉 JFreeChart 在容器调整大小时以某种方式重新渲染图表?
这里是 SSCCE:
public static void main(String[] args) {
JFrame frm = new JFrame("JFreeChart resizing");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CategoryDataset ds = new DefaultCategoryDataset();
JFreeChart chart = ChartFactory.createLineChart("Title", "X axis", "Y axis", ds);
ChartPanel cp = new ChartPanel(chart);
frm.getContentPane().add(cp, BorderLayout.CENTER);
frm.pack();
frm.setVisible(true);
}
【问题讨论】:
-
我是否正确,您希望图表在调整框架大小时平滑调整大小?为什么aspect-ratio?为什么不swing?
-
@trashgod 是的。具体来说,当框架较大时,文本显得太宽,而当框架较小时,文本显得太窄,当我想让它的大小独立于框架大小时。因此使用
aspect-ratio标签,因为它不像Swing(布局管理器)问题。我会在我使用计算机时尝试您的解决方案,感谢您抽出宝贵时间。
标签: java resize jfreechart aspect-ratio