我能够使用以下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);
}
我还有另一张图像,它使用与上图类似的结构。
如何让图片显示在网站上?
答案 0 :(得分:0)
如果图片位于.jar文件中,您可以使用Class或ClassLoader的getResource
方法访问这些图片:
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());