练习 54 JAVA 小动画
本例知识点 一句话讲解
新学
知识
使用 Image 类 导入图片
使用 Thread 类 管理线程
已学
知识
使用 getCodeBase()函数 得到图片的路径
使用 Graphics 类 管理屏幕显示
一、练习具体要求
本例制作 JAVA 小动画,运行效果如图 54-1 所示。执行本例实例后,将在浏览器窗口
内显示一个 JAVA 小动画。显示顺序是:先显示 JAVA 的咖啡形状的 logo 图片,然后依次
显示 带有“J”,” A”,” V”, “A” 四个字母的图片。显示结束后,程序会自行循环。本实例的知
识点有:线程类(Thread),Image 类和 Graphics 类的应用。
二、程序及注释
(1)编程思路:本练习因为要制作 JAVA 小动画,所以首先要实现图片的导入。这是
先 通 过 Image 类 定 义 一 个 图 片 数 组 hImages[] , 并 且 通 过 语 句 hImages=new
Image[6]构造了图片数组的大小;然后通过六次循环来准备每一帧图像,每一帧的图像是
由一个已经存在的图片构造,通过函数 getImage(getCodeBase(),"frame"+i+".jpg")
找到相应的图片名称。然后,因为要让静止的图片产生动画效果,所以要利用线程类。在
start()函数中,判断线程类的对象 hThread:如果 hThread 为空,就要新建一个线程,
否则就启动当前线程;在 run()函数中,现调用 repaint()函数来重画当前窗口,然后程序
会通过函数 hThread.sleep(500)使当前运行的线程睡眠 500 毫秒。最后,因为要使几幅
静止的图片连续显示.,所以要利用 Graphics 类。当程序要重画当前窗口的时候,会自动
调用 paint()函数,paint()函数会调用 update(g)函数(g 是 Graphics 类实例化的对
象),在 update(g)函数内部,通过函数 g.drawImage(hImages[hFrame],0,0,this)
将当前帧的图像显示在屏幕上。
(2) 程序实现及注释:
//animation.java
import java.awt.*;
import java.applet.Applet;
public class animation extends Applet implements Runnable
{
Image hImages[];
int hFrame=0;