【问题标题】:drawImage() for .png files doesn't work in Java applet?.png 文件的 drawImage() 在 Java 小程序中不起作用?
【发布时间】:2009-03-09 12:29:27
【问题描述】:

我使用小程序制作了这个吃豆人游戏。当小程序完成加载时,它会显示我制作的“开始菜单”图形,上面写着“双击开始游戏”等。该图形将占据整个 400x400 小程序。代码如下:

public void paint(Graphics g)
{
    if (! isRunning)
    {
        switch (result)
        {
            case 0:
                showStartScreen(g);
            break;

            case 1:
                showWonScreen(g);
            break;

            case -1:
                showLostScreen(g);
            break;
        }
        return;
    }
      //Code for rendering other stuff if game is here
}

showStartScreen:

public void showStartScreen(Graphics g)
{
    Image intro=img.getImg("pacman-intro.png");
    g.drawImage(intro, 0, 0, this);

}

当我在 Eclipse 上本地运行它时,这工作正常,但在 Web 浏览器中,当加载小程序时,我只看到一个空白框,其中 java 的加载动画以前是。令人惊讶的是,如果我随机双击小程序所在的位置,游戏就会开始并正常运行。所以这让我觉得问题在于使用drawImage 绘制 .png 文件。

当你输赢比赛时也会发生同样的事情,它只是挂起而不是绘制它需要的图形。

可以看到这个here(可以用方向键控制)

P.S 我在这里使用双缓冲。

有什么想法吗?

编辑:用于加载 img 的 ImgHelper 类的代码:

import java.awt.Image;
import java.net.URL;

import javax.swing.ImageIcon;

public class ImgHelper
{
    public Image getImg(String file)
    {
            //Engine is the name of the base applet class
        URL url=Engine.class.getClassLoader().getResource("assets/" + file);
        return new ImageIcon(url).getImage();

    }


}

【问题讨论】:

  • 不可能说这有什么问题。例如,什么是“img”,它是如何加载图像的?

标签: java image applet


【解决方案1】:

啊,我检查了你的jar文件的内容。

将“pacman-intro.png”替换为“pacman-intro.PNG”。它区分大小写。

【讨论】:

    【解决方案2】:

    这些 png 是否在正确的目录中?是 ”。”在服务器上的路径环境变量中?

    尝试“./pacman-intro.png”即

    【讨论】:

    • 是的,路径正确,我已经仔细检查过。 imgHelper.getImg 方法在图片前添加/
    猜你喜欢
    • 2016-03-10
    • 2012-12-06
    • 2016-05-25
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2013-11-20
    相关资源
    最近更新 更多