我正在开发一个使用 Java、swing 和 Java2D 生成迷宫的项目。我是 Java2D 的新手,所以如果这个问题是新问题,请原谅。
基本上,我有一个成功生成的迷宫。我希望在我设置并正确覆盖 PaintComponent 的自定义 JPanel 上绘制这个迷宫。我现在遇到的问题是我目前有能力画迷宫,但每次重画它都会消失。我已经通过在每次调用 repaint() 时重新绘制迷宫来解决这个问题,但这似乎效率极低。既然迷宫没有改变,我为什么要重画它呢?
所以我的问题是:是否有任何方法可以“缓存”迷宫的绘图,这样我就不必每次都浪费时间重新绘制它?我可以看到每次都重新绘制它,因为特别大的迷宫是减速的主要原因。
谢谢!
最佳答案
将迷宫绘制到 BufferedImage 中。然后在您的 paintComponent() 方法中只绘制 BufferedImage。 Swing 将确定是整个迷宫还是其中的一部分需要重新绘制。
有关在 BufferedImage 上绘画的示例,请参阅 Custom Painting Approaches 中的 DrawOnImage
示例.
关于java - 避免重新绘制整个迷宫的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825839/