J2SE 照书抄的居然 不出声 求大大指点

安生 2012-02-22 07:39:02


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.net.URL;
import java.applet.Applet;
import java.io.File;
/**
*
* @author Shylock
*/
class Tool {

public static void showMsg(String msg)
{
System.out.println(msg);
}
}

class Audio extends Frame implements Runnable,ActionListener,ItemListener{
Thread thread;
Choice choice;
URL url;
AudioClip clip;

Button buttonPlay;
Button buttonLoop;
Button buttonStop;

String str;
Audio(){
thread = new Thread(this);
choice = new Choice();
choice.add("1.mid");
choice.add("1.mp3");

choice.addItemListener(this);
buttonPlay = new Button("Play");
buttonLoop = new Button("Loop");
buttonStop = new Button("Stop");

buttonPlay.addActionListener(this);
buttonLoop.addActionListener(this);
buttonStop.addActionListener(this);

setLayout(new FlowLayout());

add(choice);
add(buttonPlay);
add(buttonLoop);
add(buttonStop);

setSize(350,120);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
validate();
}

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == buttonPlay){
clip.play();
}
else if(e.getSource() == buttonLoop){
clip.loop();
}
else{
clip.stop();
}
}

@Override
public void itemStateChanged(ItemEvent e) {
str = choice.getSelectedItem();
if(!thread.isAlive()){
thread = new Thread(this);
}
try{
thread.start();
}catch(Exception exp){
Tool.showMsg(exp.toString());
}
}

@Override
public void run() {
try{
File file = new File(str);
url = file.toURI().toURL();
Tool.showMsg(url.toString());
clip = Applet.newAudioClip(url);
Tool.showMsg(clip.toString());
Tool.showMsg(Thread.currentThread().getName()+"....run....");
}
catch(Exception e){
Tool.showMsg(e.toString());
}
}

}
public class AudioDemo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Audio audio = new Audio();
//audio.thread.start();
}
}

...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
24K純帥 2012-02-22
  • 打赏
  • 举报
回复
方法都是没问题的,是不是AudioClip play()有问题
爱摸鱼de老邪 2012-02-22
  • 打赏
  • 举报
回复
尽信书不如无书
桃园闲人 2012-02-22
  • 打赏
  • 举报
回复
书上的东西有好多错误,是在不会可以在网上找视频跟着慢慢学,比抄书好百倍。。。。。

62,614

社区成员

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

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