[文章導讀]在有些情況下,可能需要在發生某事件時伴之以聲音,尢其是在Applet 中裝載圖像的同時播放聲音,這樣將大大地豐富Applet的內容
在有些情況下,可能需要在發生某事件時伴之以聲音,尢其是在Applet 中裝載圖像的同時播放聲音,這樣將大大地豐富Applet的內容。協調使用圖像的聲音是十分重要的。
聲音和圖像的協調(Appletl.java)
//源程序清單
import java.awt.*;
import java.applet.*;
import java.util.*;
public class Appletl extends Applet implements Runnable
{
AudioClip audioClip;
Thread ShapeThread=null;
Random RandomNumber=new Random( );
Color ImageColor;
public void init( )
{
audioClip=getAudioClip(getCodeBase( ), "Sample.AU");// 創建一個AudioClip對象
}
public void start( )
{
if (ShapeThread= =null)
{
ShapeThread=new Thread(this);
ShapeThread.start( );
}
}
public void run()
{
while (true)
{
switch (RandomNumber.nextlnt(5)) { //把隨機數轉換為0~4之間的值
case 0: ImageColor=Color.black;
break;
case 1: ImageColor=Color.blue;
break;
case 2: ImageColor=Color.cyan;
break;
case3: ImageColor=Color.magenta;
break;
case4: ImageColor=Color.orange;
break;
default: ImageColor=Color.red;
}
try
{
ShapeThread.sleep(300); //線程睡眠
}
catch(InterruptedException e)
{
//忽略異常
repaint();
}
}
public void paint(Graphics g)
{
g.setColor(ImageColor);
audioClip.play(); //播放聲音
switch(RandomNumber.nextlnt(2)) //獲取隨機數與2整除的余數
{
case0:g.fillRect(25,25,200,200); //添充一個矩形
break;
default:g.fillOval(25,25,200,200); //添充一個橢圓
break;
}
}
}
該Applet的聲音處理非常簡單。它首先創建一個AudioClip對象並用getAudioClip把聲音文件賦予該對象,然後用AudioClip類的play方法播放聲音。該Applet使用Random對象產生隨機數。它首先根據隨機數確定顏色;然後在paint內根據隨機數確定畫圓還是畫方。Random類的nexsInt函數返回一個隨機整數(int型)。該Applet把隨機數轉換為一個0~4之間的值(在run函數內)和一個0~1之間的值(在paint函數內)。
需把如下的HTML語句放入Appletl.HTML文件,為運行該Appletl做准備。
<HTML>
<TITLE>Applet</TITLE>
<APPLET CODE="Appletl.class" WIDTH=300 HEIGHT=300>
</APPLET>
</HTML>