代码如下: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/den.gif");
add(new JLabel(new ImageIcon(urlForImage)));
URL urlForAudio = getClass().getResource("E:/学习资料/book/audio/den.mid");
audioClip = Applet.newAudioClip(urlForAudio);
audioClip.loop();
}
public void start(){
if(audioClip != null) audioClip.loop();
}
public void stop(){
if(audioClip != null) audioClip.stop();
}
}
我输入的路径没有错,但是每次运行都有NullPointerException
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/den.gif");
add(new JLabel(new ImageIcon(urlForImage)));
URL urlForAudio = getClass().getResource("E:/学习资料/book/audio/den.mid");
audioClip = Applet.newAudioClip(urlForAudio);
audioClip.loop();
}
public void start(){
if(audioClip != null) audioClip.loop();
}
public void stop(){
if(audioClip != null) audioClip.stop();
}
}
我输入的路径没有错,但是每次运行都有NullPointerException
http://www.blogjava.net/nokiaguy/archive/2009/02/06/253636.html
1)getResource中传入的参数应该是相对路径,所以你这里取不到该文件的url路径,返回的就是null,你可以再程序中打印出来;可改为new File("F:/电子资料/onestop.mid").toURI().toURL();
2)jar文件数字签名。Applet中访问权限受限资源应该放在方法AccessController.doPrivileged中去执行(该方法说明详见api文档),否则要修改本地policy文件;
3)AudioClip是一个接口,Applet实现了它,你改成本地Application得调用一个实现它的组件。
详细的你都可以再网上搜资料了。