我正在做一个简单的游戏作为学习练习。游戏由一个正方形网格组成,每个正方形网格都有一个背景图像,并且可以包含任意数量的对象和玩家令牌。目前,该板只是一个JPanel,并且在paintComponent()方法中使用drawImage()绘制图像。这在技术上是有效的,但它很笨重,可能不是最好的方法。现在,我希望能够重新绘制给定的方块而不重新绘制整个板子,而且看起来我最初的实现是缺乏的。图标中的多个动画图像?
我想出的解决方案是让自定义图标类代表正方形,使用带有包含自定义图标的GridLayout的JPanel板。最终存在的问题是,一些背景或对象图像将会变成动画,并且在一个正方形上可能会出现多个动画。我想我会用动画GIF做这个。
我记得读过在drawImage方法中使用ImageObserver会导致动画出现,但它看起来不像Icon是ImageObserver。使用Board JPanel作为ImageObserver是个好主意吗?除了动画GIF还有更好的方法吗?
出现的另一个解决方案是JLayeredPanes的网格,JLabels包含相互叠加的适当图像,但由于某种原因,这似乎像是用大锤拍打苍蝇。
显示动画GIF自己是一个相当复杂的问题。 'JLabel'拥有内置此能力 – MadProgrammer