我写的一个控制音乐播放的类
import java.applet.*;
import java.io.*;
import java.net.*;
   
public class AudioControl
{
     protected File soundFile;
     protected AudioClip theSound;
     AudioControl(String file)
     {
      soundFile = new File(file);
     }
     AudioControl()
     {
     }
     public void playloop()
     {
      theSound = null;
        try
        {
            theSound = Applet.newAudioClip(soundFile.toURL());
        }
        catch(MalformedURLException e)
        {
            System.out.println(e);    
        }
        theSound.loop();
     }
     public void playOnce()
     {
      theSound = null;
        try
        {
            theSound = Applet.newAudioClip(soundFile.toURL());
        }
        catch(MalformedURLException e)
        {
            System.out.println(e);    
        }
        theSound.play();
     }
     public void playstop()
     {
      theSound.stop();
     }      
}然后我在另外一个类里面创建了一个这个类的对象AudioControl audio=new AudioControl(),赋值后在刚启动程序时先播放音乐,连接两个JMenuItem,在actionPerformed里面写了
if(event.getSource()==JMI_MusicOn)
     {
     JMI_MusicOn.setEnabled(false);
     JMI_MusicOff.setEnabled(true);
     audio.playloop();
     }
     else if(event.getSource()==JMI_MusicOff)
     {
     JMI_MusicOn.setEnabled(true);
     JMI_MusicOff.setEnabled(false);
     audio.playstop();
     }
但是,我在程序运行中按这两个键有时候有效,有时候失灵,一般我关掉音乐后需要重复几遍的打开关闭音乐才能再把音乐打开,求高人指点