好的!
看,我有一个名为 GIFPanel 的类,它继承自 JPanel 类
package Trivia;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class GIFPanel extends JPanel{
private Image imagen;
public GIFPanel(Image imagen){
this.imagen = imagen;
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(imagen,0,0,getWidth(),getHeight(),this);
}
}
在我的另一堂课中,我创建了它并插入了一张图片,其来源来自一个网址
Image img = Toolkit.getDefaultToolkit().getImage(new URL("https://media.giphy.com/media/l3q2XKiWAOl0qa1Tq/source.gif"));
menu = new GIFPanel(img);
好的,它工作正常,即使使用生成的 JAR 也可以播放 gif……但是……这并不是我真正想要的。怎么会呢?前几天我问过如何在JAVA中不通过URL加载同一个项目的包中包含的图像,因为在生成jar文件时,程序会响应错误。
尝试对 GIF 文件执行相同的操作,但甚至 netbeans 都无法识别它。. .
资产包已经包含 GIF。
我想避免使用来自网络的链接,因为当要使用它的连接失败时,程序将崩溃(关闭)。
如何制作它以便它可以使用我的项目包中包含的文件播放 gif?
对您有用的是将文件加载到 a 中
byte[]
,然后使用以下命令构建图像createImage(byte[] ba)
:如您所见,您加载.jar资源的内容的方式与您在其他问题中的方式相同。只有这一次您将它加载到一个字节数组中,您可以使用该字节数组来使用
Toolkit
awt 构建您的数组图像。我在 JLabel 中使用它,然后将它安装到 JPanel。