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();
}
}

...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
24K純帥 2012-02-22
  • 打赏
  • 举报
回复
方法都是没问题的,是不是AudioClip play()有问题
爱摸鱼de老邪 2012-02-22
  • 打赏
  • 举报
回复
尽信书不如无书
桃园闲人 2012-02-22
  • 打赏
  • 举报
回复
书上的东西有好多错误,是在不会可以在网上找视频跟着慢慢学,比抄书好百倍。。。。。
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。

62,629

社区成员

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

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