<b>在Applet中引用jar中的资源文件的办法</b>[Java编程]
本文“<b>在Applet中引用jar中的资源文件的办法</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假如想要做一个对比漂亮的Applet让人家利用,一定会加上很多资源,比方图片大概声音文件什么的.
sun供应了一个有效的工具,jar.这个工具可以把这些资源文件合在一个文件里,避免频繁的http request,
并且下载的jar文件可以被缓存,很爽吧.
但是若何精确引用jar中的资源呢?
比方我们打算显示一个图片按钮,图片相对途径为./img/logo.gif,你可以自己随便找一个gif图片.
让我们来看看我们想当然的做法.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ImageButtonApplet extends JApplet
{
private String path = "/img/logo.gif";
private ImageIcon logoButtonIcon = new ImageIcon(path);
/**Initialize the applet*/
public void init()
{
try
{
if (logoButtonIcon == null)
throw new Exception("cannot get the image!");
JButton iButton = new JButton(logoButtonIcon);
Container cp = this.getContentPane();
cp.add(iButton);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
这模样编译之后,把ImageButtonApplet.class和logo.gif保持相对途径打进jar里面,对应的HTML页面代码为<APPLET CODE = "ImageButtonApplet.class" CODEBASE = "." ARCHIVE = "test.jar" WIDTH = "200" HEIGHT = "200"></APPLET>,由于利用了Swing,
经过HTMLConverter预处理之后,本认为可以一举成功,翻开页面却发现,抛出非常:
java.security.AccessControlException: access denied (java.io.FilePermission /img/logo.gif read)
这件事情也忧郁了我好久,反复试验,不管path相对途径还是什么,都不能顺利实现.
后来我研究了jdk自带的demo,发现demo在引用资源的时刻,采取这样的办法 getClass().getResource(String sourceName);
getClass()是Object的办法,返回一个对象的运行时范例,即CLass对象.
以上是“<b>在Applet中引用jar中的资源文件的办法</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |