png图像上的动画问题

时间:2016-04-25 13:37:59

标签: java swing animation

大家好,所以我在我的动画节目上取得了进步,但我遇到了一个问题,我的alien.png没有出现在jframe中。我将alien.png放在与此动画demo.java相同的文件夹中,所以我不确定为什么它找不到alien.png。任何帮助将不胜感激

  <% @subject.Association.each do |horse| %>
 <tr>
  <td>
    <%= horse['Name'].to_s %>
    <%= horse['Size'] %>
  </td>
  </tr>
   <% end %>

1 个答案:

答案 0 :(得分:1)

让我们看一下代码行:

package animationdemo; // this one!

import java.awt.Graphics;
// ..

public class AnimationDemo extends JFrame  {
    Image alien;
    public AnimationDemo() {

    alien = Toolkit.getDefaultToolkit().getImage("alien.png"); // & this one!

最后一行有效地尝试从“当前目录”加载File

但图片可能无法再作为File访问。应用程序资源在部署之前将成为嵌入式资源,因此立即开始访问它们是明智之举。必须通过URL而不是文件访问。有关如何形成网址,请参阅info. page for embedded resource

注意第一个高亮线,找到资源的最佳路径可能是:

..getResource("/animationdemo/alien.png")

另请注意,getResource方法区分大小写,因此..

..getResource("/animationdemo/alien.PNG")

..找不到小写版本,反之亦然。

顺便说一下,我通过对上面的来源做了一些小改动来检查我的“缺失图像”理论:

    alien = new BufferedImage(40, 40, BufferedImage.TYPE_INT_RGB);
            //Toolkit.getDefaultToolkit().getImage("alien.png");

鉴于我看到了一个动画黑色方块,它支持的主要问题是图像未找到。代码仍然有一些其他方面应该调整,但它基本上是朝着正确的方向。