java - 避免重新绘制整个迷宫的最佳方法?

标签 java swing java-2d maze

我正在开发一个使用 Java、swing 和 Java2D 生成迷宫的项目。我是 Java2D 的新手,所以如果这个问题是新问题,请原谅。

基本上,我有一个成功生成的迷宫。我希望在我设置并正确覆盖 PaintComponent 的自定义 JPanel 上绘制这个迷宫。我现在遇到的问题是我目前有能力画迷宫,但每次重画它都会消失。我已经通过在每次调用 repaint() 时重新绘制迷宫来解决这个问题,但这似乎效率极低。既然迷宫没有改变,我为什么要重画它呢?

所以我的问题是:是否有任何方法可以“缓存”迷宫的绘图,这样我就不必每次都浪费时间重新绘制它?我可以看到每次都重新绘制它,因为特别大的迷宫是减速的主要原因。

谢谢!

最佳答案

将迷宫绘制到 BufferedImage 中。然后在您的 paintComponent() 方法中只绘制 BufferedImage。 Swing 将确定是整个迷宫还是其中的一部分需要重新绘制。

有关在 BufferedImage 上绘画的示例,请参阅 Custom Painting Approaches 中的 DrawOnImage 示例.

关于java - 避免重新绘制整个迷宫的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825839/

相关文章:

java - 从 Spring boot 单元测试中排除 Spring Cloud Config Server

java - JTabbedPane间距

java - 无法在三角形的相邻边之间绘制圆弧

java - 使用递归时Java编译器错误 'missing return statement'

java - Facebook 集成 android 支持 v4 内容 localBroadcastManager

java - JTextField 忽略 nextLine()? [第二部分]

java - 突破碰撞检测

Java 2D。悬停在圆上

java - 替换查询字符串中的设计模式

java - 小程序如何成为模态并防止 IE9 窗口关闭?