import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*//**
*
* @author Administrator
*/
public class Music extends JApplet{
private static int i;
private static AudioClip[] audioClip=new AudioClip[i];
private static AudioClip currentAudioClip;
public Music(){
// URL urlForImage1=getClass().getResource("image/xiaoqing.gif");
//add(new JLabel(new ImageIcon(urlForImage1)));
URL urlForImage=getClass().getResource("image/nature.jpg");
add(new JLabel(new ImageIcon(urlForImage))); URL urlForAudio=getClass().getResource("audio/songs1.au");
currentAudioClip=Applet.newAudioClip(urlForAudio);
currentAudioClip.loop();
final JComboBox songs=new JComboBox(new Object[]{"xiaoge","sixingbugai","月光下的凤尾竹"});
for(int j=0;j<3;j++){
audioClip[j]=Applet.newAudioClip(getClass().getResource("audio/songs"+j+".au"));
}
}
public void start(){
if(currentAudioClip!=null) currentAudioClip.loop();
}
public void stop(){
if(currentAudioClip!=null) currentAudioClip.stop();
} public static void main(String[] args){ JPanel jpButtons=new JPanel();
final JComboBox songs=new JComboBox(new Object[]{"xiaoge","sixingbugai","月光下的凤尾竹"});
JButton button1 = new JButton("Resume");
JButton button2 =new JButton("Suspend");
jpButtons.add(button1);
jpButtons.add(button2);
jpButtons.add(new JLabel("Select"));
jpButtons.add(songs);
JFrame frame=new JFrame("DisplayMusic");
Music applet=new Music(); applet.init();
frame.add(jpButtons,BorderLayout.SOUTH);
frame.add(applet,BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
currentAudioClip.loop();
}
});
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
currentAudioClip.stop();
}
});
songs.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
currentAudioClip.stop();
int current = songs.getSelectedIndex();
songs.setSelectedIndex(current);
currentAudioClip=audioClip[current];
currentAudioClip.loop();
}
});
}
}请问我这道题是显示一张图片,然后3首歌每点击一次不同歌曲就换歌曲,错误如下
un:
Exception in thread "main" java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:48)
at java.applet.Applet.newAudioClip(Applet.java:279)
at Music.<init>(Music.java:42)
at Music.main(Music.java:68)
生成已停止(总时间:1 分钟 2 秒)
,请问错在哪,怎么修改?谢谢
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*//**
*
* @author Administrator
*/
public class Music extends JApplet{
private static int i;
private static AudioClip[] audioClip=new AudioClip[i];
private static AudioClip currentAudioClip;
public Music(){
// URL urlForImage1=getClass().getResource("image/xiaoqing.gif");
//add(new JLabel(new ImageIcon(urlForImage1)));
URL urlForImage=getClass().getResource("image/nature.jpg");
add(new JLabel(new ImageIcon(urlForImage))); URL urlForAudio=getClass().getResource("audio/songs1.au");
currentAudioClip=Applet.newAudioClip(urlForAudio);
currentAudioClip.loop();
final JComboBox songs=new JComboBox(new Object[]{"xiaoge","sixingbugai","月光下的凤尾竹"});
for(int j=0;j<3;j++){
audioClip[j]=Applet.newAudioClip(getClass().getResource("audio/songs"+j+".au"));
}
}
public void start(){
if(currentAudioClip!=null) currentAudioClip.loop();
}
public void stop(){
if(currentAudioClip!=null) currentAudioClip.stop();
} public static void main(String[] args){ JPanel jpButtons=new JPanel();
final JComboBox songs=new JComboBox(new Object[]{"xiaoge","sixingbugai","月光下的凤尾竹"});
JButton button1 = new JButton("Resume");
JButton button2 =new JButton("Suspend");
jpButtons.add(button1);
jpButtons.add(button2);
jpButtons.add(new JLabel("Select"));
jpButtons.add(songs);
JFrame frame=new JFrame("DisplayMusic");
Music applet=new Music(); applet.init();
frame.add(jpButtons,BorderLayout.SOUTH);
frame.add(applet,BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
currentAudioClip.loop();
}
});
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
currentAudioClip.stop();
}
});
songs.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
currentAudioClip.stop();
int current = songs.getSelectedIndex();
songs.setSelectedIndex(current);
currentAudioClip=audioClip[current];
currentAudioClip.loop();
}
});
}
}请问我这道题是显示一张图片,然后3首歌每点击一次不同歌曲就换歌曲,错误如下
un:
Exception in thread "main" java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:48)
at java.applet.Applet.newAudioClip(Applet.java:279)
at Music.<init>(Music.java:42)
at Music.main(Music.java:68)
生成已停止(总时间:1 分钟 2 秒)
,请问错在哪,怎么修改?谢谢
at Music. <init>(Music.java:42)
audioClip[j]=Applet.newAudioClip(getClass().getResource("audio/songs"+j+".au"));
出项了对空指针的使用
检查一下,看看是不是哪个对象没有初始化
//仔细一看
public class Music extends JApplet{
private static int i; //wo de GOD ,没有显示初始化,所以i=0;
private static AudioClip[] audioClip=new AudioClip[i]; // 这里就申请了new AudioClip[0];
//audioClip[j]=Applet.newAudioClip(getClass().getResource("audio/songs"+j+".au"));
z这里就出错了
private static AudioClip currentAudioClip;