Java应用程序中的动画GIF引发了错误的格式异常
我想在我的应用程序中显示动画gif。我遵循了这里的代码: 当我运行我的代码时,我得到了MalformedURLException错误,我的应用程序将不会运行。这是我所拥有的不起作用的东西 调用createVisuals()的方法: 显示gif的方法:Java应用程序中的动画GIF引发了错误的格式异常,java,animation,Java,Animation,我想在我的应用程序中显示动画gif。我遵循了这里的代码: 当我运行我的代码时,我得到了MalformedURLException错误,我的应用程序将不会运行。这是我所拥有的不起作用的东西 调用createVisuals()的方法: 显示gif的方法: public class Visuals { public static void createVisuals() throws MalformedURLException{ URL cwURL = new URL("src\\imag
public class Visuals {
public static void createVisuals() throws MalformedURLException{
URL cwURL = new URL("src\\images\\classmap_colorwheel-gif.gif");
Icon cwGif = new ImageIcon(cwURL);
JLabel cwIcon = new JLabel(cwGif);
GUI.frame.getContentPane().add(cwIcon);
}
我做得不对的是什么
编辑:
laksys指出我的URL构造是错误的,并给出了修复它的参考。问题是我没有在URL开头添加file:的同时给出完整的文件位置
URL cwURL = new URL("src\\images\\classmap_colorwheel-gif.gif");
URL cwURL = new URL("File:C:/Users/01526460/Desktop/ClassMap/src/images/classmap_colorwheel-gif.gif");
这导致异常消失,但gif运行不正常。仅加载gif序列的一帧,而其他帧仅部分加载。gif的循环速度也比它应该的快
编辑2:
我发现gif不能正常循环是因为我的制作方式,而不是因为Java。我使用PhotoshopCS6创建了一个帧动画。当我在两帧之间以0秒的延迟运行帧动画时,它在Photoshop中看起来很好。然而,当通过Java解释0秒延迟时,gif实际上试图在帧之间移动0秒。如果其他人遇到此问题,请确保帧之间的延迟未设置为0。Java不会自动控制GIF的帧速率(就像许多浏览器一样)。我认为您的url构造是错误的。它可能有协议、主机、端口等,在URL中使用前向斜杠只是尝试了多种方式使用前向斜杠,但没有解决问题。为什么使用URL而不是文件?是的。这很有帮助,我让它开始工作了……等等。它不再导致错误,但是当它显示图像序列时,它只完全加载一帧。其他帧仅显示其自身的一部分。gif在序列中的移动速度也比它应该的要快。
URL cwURL = new URL("src\\images\\classmap_colorwheel-gif.gif");
URL cwURL = new URL("File:C:/Users/01526460/Desktop/ClassMap/src/images/classmap_colorwheel-gif.gif");