Java 图标中有多个动画图像?

Java 图标中有多个动画图像?,java,animation,imageobserver,Java,Animation,Imageobserver,我正在做一个简单的游戏作为学习练习。游戏由一个方格组成,每个方格都有一个背景图像,可以包含任意数量的对象和玩家标记,这些对象和标记层叠在一起。目前,电路板只是一个JPanel,图像是使用paintComponent()方法中的drawImage()绘制的。这在技术上是可行的,但它相当笨重,可能不是最好的方法。现在,我希望能够在不重新绘制整个电路板的情况下重新绘制给定的正方形,而且似乎缺少我最初的实现 我提出的解决方案是用一个自定义图标类表示正方形,用一个包含自定义图标的GridLayout的JP

我正在做一个简单的游戏作为学习练习。游戏由一个方格组成,每个方格都有一个背景图像,可以包含任意数量的对象和玩家标记,这些对象和标记层叠在一起。目前,电路板只是一个JPanel,图像是使用paintComponent()方法中的drawImage()绘制的。这在技术上是可行的,但它相当笨重,可能不是最好的方法。现在,我希望能够在不重新绘制整个电路板的情况下重新绘制给定的正方形,而且似乎缺少我最初的实现

我提出的解决方案是用一个自定义图标类表示正方形,用一个包含自定义图标的GridLayout的JPanel表示板。问题是,最终,一些背景或对象图像将被设置动画,并且一个正方形上可能有多个动画对象。我在想我会用动画GIF来做这件事

我记得读到在drawImage方法中使用ImageObserver会导致动画显示,但它看起来不像是ImageObserver。使用board JPanel作为ImageObserver是个好主意吗?除了动画GIF,还有更好的方法吗


出现的另一个解决方案是一个由JLayeredPanes组成的网格,其中jlabel包含相互分层的适当图像,但出于某种原因,这看起来像是用大锤打苍蝇。

根据上下文,使用
javax.swing.Timer
java.util.Timer
的实例来调整动画的速度。您可以重新绘制图标,如图所示,或替换图标,如图所示。

根据上下文,使用
javax.swing.Timer
java.util.Timer
的实例来调整动画的速度。您可以重新绘制图标,如图所示,或替换图标,如图所示。

根据上下文,使用
javax.swing.Timer
java.util.Timer
的实例来调整动画的速度。您可以重新绘制图标,如图所示,或替换图标,如图所示。

根据上下文,使用
javax.swing.Timer
java.util.Timer
的实例来调整动画的速度。您可以重新绘制图标,如图所示,或替换图标。可能会给您一些想法。

可能会给您一些想法。

可能会给您一些想法。

可能会给您一些想法。

显示动画GIF本身是一个相当复杂的问题
JLabel
在播放动画GIF时内置了此功能,这是一个相当复杂的问题
JLabel
在播放动画GIF时内置了此功能,这是一个相当复杂的问题
JLabel
在播放动画GIF时内置了此功能,这是一个相当复杂的问题
JLabel
内置了此功能