作者sbrhsieh (偶尔想摆烂一下)
看板java
标题Re: [问题] applet没有办法显示图片?
时间Thu Jul 1 22:49:59 2010
※ 引述《tempTTP1 (任剑翔)》之铭言:
: 大家好:
: 小弟最近写了一个程式,算是在网页上的applet那种,但是自己在测的时候,
: compile都没有问题,执行的时候就整个都无法显示出来,按下去他会跟我说:
: java.security.AccessControlException: access denied (java.io.FilePermission
: images/0.jpg read)
: [略]
: Source)
: at java.lang.Thread.run(Unknown Source)
: 例外:java.security.AccessControlException: access denied
: (java.io.FilePermission images/0.jpg read)
: 这样...,主要是要有一个label显示image资料夹底下的0.jpg这张图,但是我没有权限..
: 我的程式码:
: image1=new ImageIcon("images/0.jpg");
: image2=new ImageIcon("images/0.jpg");
: Label1=new JLabel(""); //直接JLabel(image1);也没用
: Label2=new JLabel("");
: setVisible(true);
: Label1.setIcon(image1);
: Label2.setIcon(image2);
我假设你设计这个 applet 不是给你自己在 local 使用的(若是给自己在 local
使用,制作成 applet 干嘛?)。
那麽 applet 就是要放在 web server 上,供人下载回去使用(包括你自己)。换个
方式说,applet 是下载到 user 系统上的 JRE(Java Plug-in) 来 run。
J2SE core classes 中几乎所有的 method 若是以 String 来指定 resource,都是
由 String 来表示位於 local file system 上的某个 resource 的路径。
所以依你现在的写法来说,等於你假设去使用你这个 applet 的 user 的系统上
已有一个 images 目录,里头有你的 applet 所需要的图档,而且你能确定 applet
执行时的 working directory。
如果你能确定上述两点,对任何使用你的 applet 的 user 都能成立,那你再
往权限方面去考虑。
通常设计 applet 时,对於 applet 所需的 resource(图、声音档)的处理,
不外乎是考虑把 resource 放在 applet 所在的 web server 上,让 applet
透过 getImage/getAudioClip method 下载来使用;或是把 resource 包在
jar 里,让 user(Java Plug-in)下载回去,applet 以 Class -
getResource/getResourceAsStream 来 access jar 里的 resource 档。
如果 applet 放在 web server 上没有打包成 jar,Class -
getResource/getResourceAsStream 也可以 access 同放在 web server 上的
resource 档案。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.132.138
1F:推 tempTTP1:感谢! 07/02 22:42