如何双缓冲JLayeredPane

时间:2014-02-18 01:26:45

标签: java flicker doublebuffered jlayeredpane double-buffering

我目前正在Java中制作一个铺设路径的Tile游戏,我正在使用具有多个层的JLayeredPane。游戏运行正常,但每次调用重绘方法时,整个窗格都会闪烁。

现在我让游戏在计时器上运行,每个刻度线都会自动沿着我布局的路径一次移动角色。当然,我需要更新屏幕以反映用户的更改,但问题是重绘方法会强制重绘LayeredPane的所有图层。每次勾选都会导致屏幕地图区域出现闪烁。虽然它是可以忍受的,但我只是想摆脱它,所以它看起来更好。

我已经研究了双缓冲的使用,甚至设置了将窗格双缓冲为true的选项(例如pane.setDoubleBuffered(true)),但是对于各种实现没有运气。有没有办法在外部缓冲区中为每个刻度绘制整个窗格的所有图层,然后将其复制到一个主屏幕?

谢谢

0 个答案:

没有答案