gpt4 book ai didi

java - Java 应用程序中的动画 GIF 抛出 MalformedURLException

转载 作者:行者123 更新时间:2023-12-01 12:43:20 24 4
gpt4 key购买 nike

我想在我的应用程序中显示 gif 动画。我按照此处找到的代码进行操作:Show animated GIF

当我运行代码时,出现 MalformedURLException 错误,并且我的应用程序将无法运行。这是我所拥有的不起作用的内容。

调用createVisuals()的方法:

private void defaultGUI() {

frame.setTitle("Class Map");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0));
frame.setBounds(0, 0, frameWidth, frameWidth/2);
frame.getContentPane().setBackground(Color.WHITE);
frame.setUndecorated(true);

try {
Visuals.createVisuals();
} catch (MalformedURLException e) {
e.printStackTrace();
}

frame.pack();
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
}

显示gif的方法:

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 构造是错误的,并给出了修复它的引用。问题是我没有提供完整的文件位置,同时将 File: 添加到 URL 的开头。

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。我使用 Photoshop CS6 创建帧动画。当我以 0 秒帧间延迟运行帧动画时,它在 Photoshop 中看起来很好。然而,当通过 Java 解释 0 秒延迟时,gif 实际上试图在帧之间走 0 秒。如果其他人遇到此问题,请确保帧之间的延迟未设置为 0。Java 不会自动控制 gif 的帧速率(就像许多浏览器一样)。

最佳答案

我认为你的网址结构是错误的。它可能有协议(protocol)、主机、端口等,please ref this

关于java - Java 应用程序中的动画 GIF 抛出 MalformedURLException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com