gpt4 book ai didi

Java - 如何在不暂停 GUI 中的 GIF 动画的情况下暂停代码?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:45:13 24 4
gpt4 key购买 nike

目前我有一个游戏的开始菜单,它有一个按钮,按下按钮后,我的菜单背景图像从 PNG 转换为 GIF。现在,我希望我的代码等到 GIF 动画结束。之后,它应该会正常继续(通过使用实际游戏打开一个新的 JFrame)。

我读过一些关于 Swing 计时器的资料,但我不确定如何实现它,因为我是 Java 初学者。

private ImageIcon a = new ImageIcon("a.png");
private ImageIcon b = new ImageIcon("b.gif");

class AddInterestListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
bgLabel.setIcon(b); //replace PNG with GIF

//This here is where I want my delay to happen without freezing the GUI

JFrame game = new JFrame(); //Actual game frame starting etc.
}
}

有什么建议吗?

最佳答案

您不能在 Swing EDT 中使用像 Thread.sleep()Thread.join() 这样的阻塞方法。 .这将卡住 UI,因为 Swing EDT 会处理所有 UI 刷新事件。

您必须使用事件来实现它,第一个事件会阻塞 UI,然后再解除阻塞。如果你知道 GIF 动画的长度,你可以使用 SwingUtils.invokeLater()运行异步线程将在固定延迟后触发事件。

关于Java - 如何在不暂停 GUI 中的 GIF 动画的情况下暂停代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420016/

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