如何在网站上的java小程序中包含图像?

时间:2014-06-26 19:37:37

标签: java html image security applet

我能够使用以下HTML代码将我的Java小程序嵌入到网站上。

<applet name = "Project" code = "Project.class" archive="Project.jar"    
codebase="https://project.googlecode.com/svn/trunk/" width=800 height = 800>
</applet>

我将代码保存在Google代码数据库中,并使用TortoiseSVN将我的jar文件和其他文件放入包含我的图像文件的数据库中。

但是我的图片文件没有显示出来。我已经签署了我的jar和所有其他类文件,但我没有签署我的图像。我没想到我需要。当我打开网站时,我的程序的所有其他组件都可以工作,但图像除外。没有任何图像出现。

在我的appletviewer中,图像会显示,我使用以下代码来显示图像。

 class SwingPanel extends JPanel{
    Image bg;
    SwingPanel(){
        bg = Toolkit.getDefaultToolkit().getImage("spacebg.jpg");
    }
  }
 //In another class
  public void paintComponent(Graphics g){//PaintComponent
            super.paintComponent(g);//Super
            g.drawImage(bg,0,0,800,800,this);
    }

我还有另一张图像,它使用与上图类似的结构。

如何让图片显示在网站上?

2 个答案:

答案 0 :(得分:0)

如果图片位于.jar文件中,您可以使用ClassClassLoadergetResource方法访问这些图片:

bg = Toolkit.getDefaultToolkit().getImage(
    SwingPanel.class.getResource("spacebg.jpg"));

上面的代码在包含SwingPanel类的同一个包中查找spacebg.jpg。

如果要在.jar文件之外部署映像,并将其放在与Web服务器上的.jar文件相同的目录中,则可以创建相对于the applet's location的URL:

bg = Toolkit.getDefaultToolkit().getImage(
    new URL(applet.getCodeBase(), "spacebg.jpg"));

答案 1 :(得分:-2)

您必须在资源位置字符串中包含完整的网址。

而不是:

bg = Toolkit.getDefaultToolkit().getImage("spacebg.jpg");

您必须使用:

bg = Toolkit.getDefaultToolkit().getImage("http://location-of-image/spacebg.jpg");

或者如果它在jarfile中:

您必须使用:

bg = Toolkit.getDefaultToolkit().getImage(getClass().getResource("package-of-class/spacebg.jpg").getFile());