?? 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 + -