代码如下,请高手帮忙解决importjava.applet.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.net.URL;importjavax.swing.*;classMyJFrameextendsJFrameimple...
代码如下,请高手帮忙解决
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.URL;
import javax.swing.*;
class MyJFrame extends JFrame implements ActionListener
{
JButton bt1,bt2,bt3,bt4;
JPanel p1;
AudioClip ac;
MyJFrame()
{
this.setTitle("音乐播放器"); //标题
this.setSize(300,400);
p1=new JPanel();
p1.setLayout(new FlowLayout());
bt1=new JButton("打开");
bt1.addActionListener(this);
bt2=new JButton("播放");
bt2.addActionListener(this);
bt3=new JButton("循环");
bt3.addActionListener(this);
bt4=new JButton("停止"); //增加四按钮
bt4.addActionListener(this);
p1.add(bt1);
p1.add(bt2);
p1.add(bt3);
p1.add(bt4);
this.add(p1);
this.setVisible(true);
this.addWindowListener(new WL()); //窗口监听
}
public void actionPerformed(ActionEvent e)
{
File fl,f2; //两个文件对象
String fpath,fname; //分别得到文件所在文件夹和文件名
URL url=null;
Applet ap=new Applet(); //定义Applet对象,调用其getAudioClip函数得到音频
if(e.getActionCommand()=="打开") //运用文件选择器
{
JFileChooser jfc = new JFileChooser();
if(jfc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
{
fl=jfc.getSelectedFile(); //得到所选的文件
f2=fl.getParentFile(); //得到上级目录文件
fpath=f2.getAbsolutePath(); //得到上级目录地址
fname=fl.getName(); //得到文件名
try{
url=new URL("file://"+fpath); //把上级目录地址转化成URL对象
ac=ap.getAudioClip(url, fname); //通过Applet对象得到音频
}catch(IOException ex){}
}
}
if(e.getActionCommand()=="播放")
{
ac.play();
}
if(e.getActionCommand()=="循环")
{
ac.loop();
}
if(e.getActionCommand()=="停止")
{
ac.stop();
}
}
class WL extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
}
public class Music {
public static void main(String[] args) {
new MyJFrame();
}
}
就是打开的时候有错误,也播放不了
就是AudioClip 对象ac没有得到音频,请问如何解决呢?谢谢了!
展开