24.3.2 如何使用Applet类编程

【实例24.4】针对前面的讲述,本节演示一个复杂的实例,分析如何使用Applet类编程。实例的代码如下所示。


01 import java.applet.*;

02 import java.awt.*;

03 ///创建一个线程类,并且这个线程类继承了Applet类

04 ///在初始化方法中,通过getimage方法设置背景图像,通过getParameter方法获取字符串

05 ///在运行方法中,创建这个线程类的对象t,让其运行

06 ///在线程的run方法中,将text这个字符串循环地写到页面的不同位置

07 public class test4 extends Applet implements Runnable

08 {

09 Image backgroud;

10 String text;

11 boolean loop=true;

12 int delay;

13 public void init()

14 {

15 backgroud=getImage(getCodeBase(),getParameter("backgroud"));

16 text=getParameter("text");

17 delay=Integer.parseInt(getParameter("delay"));

18 }

19 public void start()

20 {

21 Thread t;

22 t=new Thread(this);

23 t.start();

24 }

25 public void stop()

26 {

27 loop=false;

28 }

29 public void run()

30 {

31 int x=0;

32 Graphics g=getGraphics();

33 Image buffer=createImage(getWidth(),getHeight());

34 Graphics gp=buffer.getGraphics();

35 while(loop)

36 {

37 gp.drawImage(backgroud,0,0,getWidth(),getHeight(),this);

38 gp.drawString(text, x,50);

39 g.drawImage(buffer,0,0,this);

40 x+=2;

41 if(x>=getWidth())

42 {

43 x=0;

44 }

45 try

46 {Thread.sleep(delay);}

47 catch(Exception e){}

48 }

49 }

50 }


在同一个目录下创建一个HTML文件,代码如下所示。


51<html>

52<body>

53<Applet code="test4.class"width="200"height="200">

54<param name="background"value="bullet.gif">

55<param name="text"value="我是一个优秀的程序员">

56<param name="delay"value="100">

57</Applet>

58</body>

59</html>


【代码说明】第53行指明引用的Java类名称。第54行设置背景图像。第56行设置延迟时间,value的单位为毫秒。

【运行效果】这个程序的结果是一个跑马灯。让一段文字不断地从屏幕的一侧移动到另一侧,这种动作循环执行。