我有一个使用 JFreeChart 显示绘图的应用程序。碰巧的是,这些图很大,而 JFreeChart 的速度并不是非常快,导致重绘时间过长,特别是在调整图大小时。
我所追求的是一种在调整大小时拉伸(stretch)表示绘图的图像的方法(有点像 iPhone 在再次启动时会显示已停止的应用程序的屏幕截图),并仅在用户完成后才执行完全重绘释放鼠标(即一旦知道绘图的最终大小)。
图表的交互功能应保持完整(显然,在不调整大小时)。
是否有通用的解决方案/Swing 包装器? (没有理由说它应该是 JFreeChart 特定的)。
干杯
最佳答案
没有具体答案,只是一个可能的策略
- 开始调整大小时,将绘图绘制到 BufferedImage 中,并显示该图像(而不是绘图)并调整其大小
- 停止调整大小时,删除图像并再次显示绘图
在 JDK 7 中,您可以使用 JLayer 进行图像/操作。
编辑
或者(对于 JLayer),您可以使用 CardLayout:在调整大小时显示一张带有图像的卡片,在不调整大小时显示另一张带有绘图的卡片。 SwingX ImagePainter 可以在调整大小时进行图像缩放
关于java - 慢速 Swing 组件的“图像拉伸(stretch)”代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345027/