2

我有一个使用 JFreeChart 显示绘图的应用程序。碰巧的是,这些图很大,而且 JFreeChart 的速度不是特别快,导致重绘时间很长,尤其是在调整图大小时。

我所追求的是一种在调整大小时拉伸表示绘图的图像的方法(有点像 iPhone 会在重新启动时显示停止的应用程序的屏幕截图),并且只有在用户释放鼠标后才执行完全重绘(即一旦地块的最终大小已知)。

图表的交互功能应该保持不变(显然在不调整大小时)。

是否有通用解决方案/ Swing 包装器?(没有理由让它特定于 JFreeChart)。

干杯

4

1 回答 1

3

没有具体的答案,只是一种可能的策略

  • 在开始调整大小时,将绘图绘制成 BufferedImage 并显示和调整该图像而不是绘图
  • 在停止调整大小时删除图像并再次显示图

在 JDK 7 中,您可以使用 JLayer 进行图像/操作。

编辑

或者(对于 JLayer),您可以使用 CardLayout:在调整大小时显示一张带有图像的卡片,而在不调整大小时显示另一张带有绘图的卡片。SwingX ImagePainter 可以在调整大小期间进行图像缩放

于 2011-09-08T09:25:27.173 回答