Java Applet是用Java编写的、含有可视化内容的、并被嵌入Web页中用来产生特殊页面效果的小程序。 
一.Applet特点 
  1.基本的绘画功能 
  2.动态页面效果 
  3.动画和声音的播放 
  4.交互功能的实现 
  5.窗口开发环境 
  6.网络交流能力的实现 二.Applet类的继承树 
 三.Applet的主要方法及生命周期 
小应用程序生命周期中有很多不同的行为:初始化、绘画或是鼠标事件等。每一种行为都对应一个相关的方法,在Java小应用程序中有五种相对重要的方法:初始化init()、开始执行start()、停止执行stop()、退出destroy()、绘画paint()。 
1.public void init()初始化:在整个Applet生命周期中,初始化只进行一次. 
当第一次浏览含有Applet的WEB页时,浏览器将: 
  a.下载该Applet 
  b.创建对象--产生一个该Applet主类的实例 
  c.调用init()对Applet自身进行初始化. 
    在init()方法中可设置程序初始状态,载入图形或字体,获取 HTML中 <param>设定的参数等. 2.public void start()启动Applet:在整个Applet生命周期中,启动可发生多次 
在下列情况下,浏览器会调用start()方法: 
  a.Applet第一次载入时. 
  b.离开该Web页后,再次进入时(back,forward). 
c.Reload该页面时. 
  d.在浏览含有Applet的WEB页时用浏览器右上角缩放按钮缩放浏览窗口大小时. 
在start()方法中可启动一线程来控制Applet,给引入类对象发送消息,或以某种方式通知Java小应用程序开始运行. 3.public void stop()停止执行Applet:在整个Applet生命周期中,停止执行可发生多次. 
在下列四种情况下,浏览器会调用stop()方法: 
  a.离开Applet所在 Web页时(用back,forward). 
  b.Reload该页面时 
  c.在浏览含有Applet的WEB页时用浏览器右上角缩放按钮缩放浏览窗口大小时. 
  d.close该Web页(彻底结束对该页面的访问).exit结束浏览器运行时(从含有该小应用程序的WEB页退出时). stop()挂起小应用程序,可释放系统处理资源.不然当浏览者离开一个页面时,小应用程序还将继续运行. 4.public void paint(Graphics g)绘制:可多次发生 在下列情况下,浏览器会调用paint()方法: a.Web页中含有Applet的部分被卷入窗口时. b.Applet显示区域在视线内时调整浏览窗口大小、缩放浏览窗口、移动窗口或Reload等需要重绘窗口时都会调用paint()方法. 
与前几个方法不同的是,paint()中带有一个参数Graphics g,它表明paint()需要引用一个Graphics类的对象实体. 在Applet中不用编程者操心,浏览器会自动创建Graphics对象并将其传送给paint()方法.但编程者应在小应用程序中引入Graphics类所在的包  import java.awt.Graphics; 5.public void destroy()退出或取消:在整个Applet生命周期中,退出只发生一次. 
在彻底结束对该Web页的访问和结束浏览器运行时(close exit)调用一次. *destroy()是java.applet.Applet类中定义的方法,只能用于小应用程序. 
*可在该方法中编写释放系统资源的代码.但除非你用了特殊的资源如创建的线程,否则不需重写destroy()方法,因为Java运行系统本身会自动进行"垃圾"处理和内存管理. 例:几个方法的调用过程AppletLife.html(在Netscape Navigator中选择Communicator->Tools->Java Console,打开Java Console进行各种操作,即可看到几个重要方法的执行情况) AppletLife.java: import java.awt.*; 
import java.applet.Applet; 
public class AppletLife extends Applet 
{ public static int colors=10; 
  Font font; 
  public void init() 
  {System.out.println("Now init"); 
   font = new java.awt.Font("TimesRoman", Font.PLAIN, 36); 
  } 
  public void start() 
  {System.out.println("Now start"); 
  } 
  public void stop() 
  {System.out.println("Now stop"); 
  } 
  public void paint(Graphics g) 
  { int red = (int)(Math.random() * 50); 
    int green = (int)(Math.random() * 50); 
    int blue = (int)(Math.random() * 256); 
    g.setFont(font); 
    g.setColor(new Color((red +colors * 30) % 256, 
              (green + colors / 3) % 256, blue)); 
    colors=colors+10; 
System.out.println("Now paint"); 
   g.drawString("hello",30,30); 
  } 
  public void destroy() 
  {System.out.println("Now destroy"); 
  }