JApplet程序,使用URL类定位资源,不知道为什么总是有错误

wangdong20 2012-02-16 05:38:08
代码如下:

package ex18;
import javax.swing.*;
import java.net.URL;
import java.applet.*;

public class DisplayImagePlayAudio extends JApplet{
private AudioClip audioClip;

public DisplayImagePlayAudio(){
URL urlForImage = getClass().getResource("E:/学习资料/book/image/denmark.gif");
add(new JLabel(new ImageIcon(urlForImage)));

URL urlForAudio = getClass().getResource("E:/学习资料/book/audio/denmark.mid");
audioClip = Applet.newAudioClip(urlForAudio);
audioClip.loop();
}

public void start(){
if(audioClip != null) audioClip.loop();
}

public void stop(){
if(audioClip != null) audioClip.stop();
}
}


我输入的路径没有错,但是每次运行都有NullPointerException
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱摸鱼de老邪 2012-02-17
  • 打赏
  • 举报
回复
前面没怎么细看。你的这个代码有以下几个问题:
1)getResource中传入的参数应该是相对路径,所以你这里取不到该文件的url路径,返回的就是null,你可以再程序中打印出来;可改为new File("F:/电子资料/onestop.mid").toURI().toURL();
2)jar文件数字签名。Applet中访问权限受限资源应该放在方法AccessController.doPrivileged中去执行(该方法说明详见api文档),否则要修改本地policy文件;
3)AudioClip是一个接口,Applet实现了它,你改成本地Application得调用一个实现它的组件。
详细的你都可以再网上搜资料了。
wangdong20 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 still_rain 的回复:]
内容太多,打字太累,给你一个博客地址吧
http://www.blogjava.net/nokiaguy/archive/2009/02/06/253636.html
[/Quote]
谢谢! 不过在最后一步就运行本地的html就死机,而且报错

另外,如果我只是想在普通的java程序里放音乐用AudioClip类也不行,即使路径对了,还是会有NullPointerException
爱摸鱼de老邪 2012-02-16
  • 打赏
  • 举报
回复
内容太多,打字太累,给你一个博客地址吧
http://www.blogjava.net/nokiaguy/archive/2009/02/06/253636.html
wangdong20 2012-02-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 still_rain 的回复:]
在applet中要访问本地资源要签名授权的。
[/Quote]
怎么弄,求大虾指点
爱摸鱼de老邪 2012-02-16
  • 打赏
  • 举报
回复
在applet中要访问本地资源要签名授权的。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧