【问题标题】:Make ImageIcon loop infinitely使 ImageIcon 无限循环
【发布时间】:2014-11-10 18:39:43
【问题描述】:

我正在尝试在我的 Java 画布上显示一个 ImageIcon(动画 .gif 图像文件)。当我像这样绘制 ImageIcon 时:

this.character = new ImageIcon("resources/test.gif");

public void render(Point position, GuiComponent gui, Container observer) {
    Graphics graphics = gui.getGraphics();
    character.paintIcon(observer,  graphics, position.x, position.y);
}

gif 只循环一次,而我想无限期地让我的 gif 循环。有谁知道怎么做?

【问题讨论】:

  • 需要调用 character.paintIcon(observer, graphics, position.x, position.y);在一个新线程的循环中。
  • 您可以使用 JLabel,它会自动执行此操作,但该问题缺乏上下文来了解最佳建议的解决方案
  • @Aeshang 我怎么知道我必须在什么时间间隔重新绘制图标?还是只能通过手动安装特定的超时来做到这一点?
  • @MadProgrammer 动画 gif 是平台游戏中玩家的图像,在每次重绘操作中都会重绘。
  • 你应该可以反复调用paintIcon,根据我有限的实验,只要你刷新至少以GIF帧速率它应该画得很好

标签: java infinite-loop gif imageicon


【解决方案1】:

在新创建的图标上尝试使用:

icon.getImage().flush();

然后做

label1.setIcon(icon); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2013-01-20
    • 2013-09-05
    • 1970-01-01
    相关资源
    最近更新 更多