Re: [問題] applet沒有辦法顯示圖片?
※ 引述《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
推
07/02 22:42, , 1F
07/02 22:42, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):