?? animatorexam.java
字號:
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.applet.*;
/*類AnimatorTest是Applet類的子類,該類用于將圖像從左右兩邊往中間慢慢收縮顯示*/
public class AnimatorExam extends Applet implements Runnable{
/*聲明一個Thread對象threadObj*/
Thread threadObj;
/*聲明一個Image類型的對象imgObj,用于存放要播放的圖片*/
Image imgObj[];
/*聲明一個MediaTracker對象*/
MediaTracker imageTracker;
/*聲明整型變量ImageW和ImageH,用于控制圖像的收縮顯示*/
int imageWidth,imageHeight;
/*本例中使用了線程,delay變量用于控制線程的睡眠時間*/
int delay;
int curNum;
/*聲明Image對象offI*/
Image offI;
Graphics offG;
public void init()
{
/*將背景顏色設(shè)置為黑色*/
this.setBackground(Color.black);
imgObj = new Image[6];
/*實例化一個MediaTracker對象,用于跟蹤圖片信息*/
imageTracker = new MediaTracker(this);
/*為String變量imageStr賦值*/
String imageStr;
for(int i = 0;i<6;i++)
{
imageStr = getParameter("image"+(i+1));
imgObj[i] = getImage(getCodeBase(),imageStr);
imageTracker.addImage(imgObj[i],0);
}
try
{
/*加載MediaTracker中的圖片*/
imageTracker.waitForID(0);
}
catch(InterruptedException e){}
/*用于設(shè)置線程的睡眠時間*/
if(getParameter("delay")==null)
{
delay = 10;
}
else
{
delay = Integer.parseInt(getParameter("delay"));
}
/*為整型變量imageWidth和imageHeight賦值*/
imageWidth = imgObj[0].getWidth(this);
imageHeight = imgObj[0].getHeight(this);
/*根據(jù)imageWidth和imageHeight創(chuàng)建Image對象*/
offI = createImage(imageWidth,imageHeight);
/*根據(jù)上面的Image對象offI生成Graphics類的對象offG*/
offG = offI.getGraphics();
}
/*下面的start()方法用于啟動線程*/
public void start()
{
if(threadObj==null)
{
curNum = 0;
threadObj = new Thread(this);
threadObj.start();
}
}
/*下面的paint方法將創(chuàng)建的圖像顯示出來*/
public void paint(Graphics g)
{
g.drawImage(offI,0,0,this);
}
/*update方法對圖像進(jìn)行更新*/
public void update(Graphics g)
{
paint(g);
}
/*run()方法為線程運行是執(zhí)行的操作*/
public void run()
{
while(threadObj!=null)
{
try
{
threadObj.sleep(delay);
curNum = ((curNum+1)%4);
/*for循環(huán)用來控制圖像從左右兩邊向中間收縮顯示*/
for(int i=0;i<=(imageWidth/3);i++)
{
threadObj.sleep(30);
offG.setColor(Color.white);
offG.fillRect(0,0,imageWidth,imageHeight);
offG.drawImage(imgObj[curNum],i,0,imageWidth-3*i,imageHeight,this);
repaint();
}
}
catch(InterruptedException e){}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -