在网站上运行时,Java小程序上的图像不显示;为什么?

在网站上运行时,Java小程序上的图像不显示;为什么?,java,html,eclipse,image,applet,Java,Html,Eclipse,Image,Applet,我正在编写一个Java小程序。我正在使用图像在小程序窗口上显示内容。我有一个单独的文件夹,其中包含所有这些图像。此文件夹不在src或bin文件夹中,而是一个单独的文件夹。此文件夹称为“资产”。在这个文件夹中,有一个名为“images”的文件夹。在这个资产文件夹中,我有几个子文件夹。在这些子文件夹中,我有我正在使用的图像。我使用下面列出的方法加载这些图像并将其显示在屏幕上。小程序在Eclipse中运行良好。当我尝试将小程序放到网站上时,问题就出现了。我已经做了很多搜索,但是在我尝试的事情中,没有一

我正在编写一个Java小程序。我正在使用图像在小程序窗口上显示内容。我有一个单独的文件夹,其中包含所有这些图像。此文件夹不在src或bin文件夹中,而是一个单独的文件夹。此文件夹称为“资产”。在这个文件夹中,有一个名为“images”的文件夹。在这个资产文件夹中,我有几个子文件夹。在这些子文件夹中,我有我正在使用的图像。我使用下面列出的方法加载这些图像并将其显示在屏幕上。小程序在Eclipse中运行良好。当我尝试将小程序放到网站上时,问题就出现了。我已经做了很多搜索,但是在我尝试的事情中,没有一件解决了我的问题。我扫描图像以确定像素颜色。下面列出了我用于图像的代码。当我查看.jar文件时,我的图像似乎在.jar文件中。我使用Unarchive和JD-GUI查看.jar文件,请告诉我该怎么做

~Rane

在屏幕上绘制图像的方法:

loadImg.renderImage("images/walls/lawn.png", xCoord, yCoord, imgWidth, imgHeight, graphics);
渲染方法:

    public void renderImage(String path, int x, int y, int width, int height,
        Graphics g) {

    g.setColor(Color.BLACK);
    g.fillRect(x, y, width, height);
    g.drawImage(getImage(path), x, y, width, height, applet);

}
    public Image getImage(String path) {

    Image img;
    URL url = null;

    try {
        url = applet.getDocumentBase();
    } catch (Exception e) {
        // TODO: handle exception
    }

    img = applet.getImage(url, path);

    return img;
}
getImage方法:

    public void renderImage(String path, int x, int y, int width, int height,
        Graphics g) {

    g.setColor(Color.BLACK);
    g.fillRect(x, y, width, height);
    g.drawImage(getImage(path), x, y, width, height, applet);

}
    public Image getImage(String path) {

    Image img;
    URL url = null;

    try {
        url = applet.getDocumentBase();
    } catch (Exception e) {
        // TODO: handle exception
    }

    img = applet.getImage(url, path);

    return img;
}
我的HTML:

    <object type="application/x-java-applet" archive="Applet.jar" code="AppletGame.class" width="600" height="600"></object>
许多人中有两个回答对我不起作用:


我解决了我的问题。在我的小程序中,我通过扫描图像以获得特定的像素颜色值来加载游戏地图。在网站上,小程序是白色的。在Eclipse中,屏幕按照我的要求显示。原因是网页上的Java小程序存在安全问题。它会在每次尝试扫描图像时抛出一个安全异常,因为我正在使用一个文件。我需要使用一个URL。我调整了我的代码,现在它在网站上运行良好

没有你的帮助,我不可能做到这一点。你帮我找到了正确的方向。例如,如果没有您关于查看Java控制台的建议,我不可能发现问题。谢谢大家!

~Rane

资料来源:


图像需要与Applet位于相同的上下文/服务器位置。图像位于Applet的.jar文件中。根据JD-GUI和Unarchiver,您应该能够使用ClassgetResource加载它们。已经有一段时间了,但我相信AppletgetImage会尝试从web服务器加载图像…好的。我会尝试一下,让您知道它是如何运行的。听起来好像它抛出了一个异常,如果您不是从IDE运行它,您需要检查Java控制台以了解详细信息