📄 boombutton.java
字号:
import java.awt.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.lang.InterruptedException;
import java.applet.Applet;
import java.applet.AudioClip;
//定义BoomButton类
public class BoomButton extends java.applet.Applet implements Runnable {
private Image img[] = new Image[6];//定义一个存放图像的数组
public int state = 0;//定义一个表示程序状态的标志
private AudioClip clip1;//定义声音文件
Thread anim;//定义anim线程
Button goButton=null;//定义一个按钮对象
String button_text;//定义一个存放按钮名称的String对象
//初始化程序
public void init(){
MediaTracker tracker = new MediaTracker(this);//定义MediaTracker类
button_text = getParameter("button_text");//获得按钮名称参数
goButton = new Button(button_text);//实例化按钮
add(goButton);//将按钮组件添加到Applet中
clip1 = getAudioClip(getCodeBase(), "sounds/Explosion-3.au");//加载声音文件
img[0] = getImage(getDocumentBase(), "images/home2.gif");//加载图像
tracker.addImage(img[0], 0);//将图像添加到MediaTracker中
img[1] = getImage(getDocumentBase(), "images/bang1.gif");
tracker.addImage(img[1], 0);
img[2] = getImage(getDocumentBase(), "images/puff1.gif");
tracker.addImage(img[2], 0);
img[3] = getImage(getDocumentBase(), "images/puff2.gif");
tracker.addImage(img[3], 0);
img[4] = getImage(getDocumentBase(), "images/puff3.gif");
tracker.addImage(img[4], 0);
img[5] = getImage(getDocumentBase(), "images/puff4.gif");
tracker.addImage(img[5], 0);
//设置线程参数
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
try { tracker.waitForAll(); }//等待,以便使所有的图片都被加载
catch (InterruptedException e) {//如果被打扰,抛出异常
System.out.println("当程序在加载图像时被打扰!");
System.exit(0);
}
Thread.currentThread().setPriority(Thread.NORM_PRIORITY);
}
//启动线程
public void start(){
anim=null;
repaint();
}
//停止线程
public void stop(){
if (anim!=null) {
anim.stop();
anim=null;
}
}
public void destroy(){
}
//action方法
public boolean action(Event evt, Object obj) {
if (obj.equals(button_text)) {
anim = new Thread(this);
anim.start();
removeAll();
return(true);
}
return false;
}
//处理mouseDown事件
public boolean mouseDown(Event f, int x, int y){
add(goButton);
return(true);
}
//处理mouseUp事件
public boolean mouseUp(Event e, int x, int y){
return(true);
}
//处理mouseEnter事件
public boolean mouseMove(Event e, int x, int y){
showStatus("");
return(true);
}
//处理mouseEnter事件
public boolean mouseEnter(Event e, int x, int y){
showStatus("");
return(true);
}
//处理mouseExit事件
public boolean mouseExit(Event e, int x, int y){
return(true);
}
//paint方法
public void paint(Graphics g){
switch (state)// switch多分支选择语句
{
case 0:
break;
case 1: // 爆炸1 (闪烁)
g.drawImage(img[1], 0, 0, this);
break;
case 2: // 爆炸2 (冒烟)
g.drawImage(img[2], 0, 0, this);
break;
case 3: // 爆炸3
g.drawImage(img[3], 0, 0, this);
break;
case 4: // 爆炸4
g.drawImage(img[4], 0, 0, this);
break;
case 5: // 爆炸5
g.drawImage(img[5], 0, 0, this);
break;
}
}
//运行线程
public void run() {
//播放声音文件
if (clip1 != null) clip1.play();
for (state=1; state<=5; state++) {
repaint();
try {anim.sleep(75);}
catch (InterruptedException e){}
}
state=0;
repaint();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -