Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()在start()方法里,会调用paint方法。这是applet的运行机制。\x0d\x0a init()方法\x0d\x0a 这个方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时,系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。\x0d\x0a start()方法\x0d\x0a 系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该 Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此,可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。\x0d\x0a stop()方法\x0d\x0a 这个方法在用户离开Applet所在页面时执行,因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序,通常也不必实现该方法。\x0d\x0a destroy()方法\x0d\x0a 与对象的finalize()方法不同,Java在浏览器关闭的时候才调用该方法。 Applet是嵌在HTML文件中的,所以destroty()方法不关心何时Applet被关闭,它在浏览器关闭的时候自动执行。在destroy() 方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭,系统将先执行stop()方法,再执行destroy()方法。
1.首先编写java文件,如下:
import java.awt.*;。
import java.applet.*;。
public class Java_Graphics extends Applet {。
public void paint(Graphics g) {。
g.drawString("用Graphics写字和画图的基本方法", 20,40);。
g.drawOval(100, 100, 30, 30);。
g.drawOval(200, 100, 40, 25);。
g.drawLine(20, 140, 200,140);。
g.drawRect(20, 160, 50, 80);。
g.drawRoundRect(110, 160, 100, 100, 25, 18);。
10
11
12
javac Java_Graphics.java 编译完成后生成 java_Graphics.class 。
这将是在浏览器中执行的程序(.class文件)
2.其次,编写对应的Html文件:。
<!doctype html>。
<html>
<head>
<meta charset="UTF-8">。
<meta name="Generator" content="EditPlus®">。
<meta name="Author" content="">。
<meta name="Keywords" content="">。
<meta name="Description" content="">。
<title>My First Java Applet</title>。
</head>
<body>
Here's my First Java Applet:。
<applet code= "Java_Graphics.class" width = "300" height = "300">。
</body>
</html>
10
11
12
13
14
15
> 想来大家都知道,最重要的当然这句<applet code= "Java_Graphics.class" width = "300"。
> height = "300">,加载了.class文件。
3.浏览器解释执行:
点击html文件,你可以看到你想看到的效果,(paint()所画)~~。
Applet 根据执行过程中发生的事件来定义其生命周期。对于每个事件将自动调用一种方法。方法如下:
init() : 初始化时调用;
该方法用于applet的初始化。他像一个构造器——当applet被初次加载时,该方法会自动被调用,并且只会被调用一次。
一般来说,我们会覆盖这个方法,在其中作一些初始化工作,例如,处理PARAM参数以及添加用户界面组件等。
实际上,Applet也可以有一个默认构造器,但是惯例的做法是在init方法而不是默认构造器中进行初始化过程。
start() :调用init方法之后自动调用这个方法;
该方法在Java调用init方法后被自动调用。每次applet出现在屏幕上时都会调用这个方法,例如,applet的第一次显示、用户转移到另一个应用程序再返回到这个包含applet的页面、从最小化状态返回等都会调用start方法。start方法可以被重复调用多次而不是仅仅一次,这与init方法不同。
start方法通常是为applet重新启动一个线程的地方,比如继续一个动画。如果当用户离开当前页面时你的applet不需要做任何挂起处理,那么你就不需要实现此方法。
stop() : 退出网页时停止执行Applet程序;
该方法在用户离开applet所在页面时被自动调用。也可以被重复多次调用。
stop方法的作用是当用户不再关注applet时能够停止使系统变慢的消耗资源的活动。
如果applet中没有动画、音频文件播放或者在一个线程中执行计算,那么通常不需要此方法。
paint(Graphics g):绘制Applet图形;
当重新绘制applet时调用。
destroy() : 离线时释放本对象及其相关的资源;
当浏览器被正常关闭时,Java要保证调用此方法。
当浏览器关闭时该方法会自动被执行。
该方法中需要放置的代码是用来进行清理工作的,例如,回收任何诸如图形环境等的系统资源。
将使applet停止运行,浏览器调用destory方法终止,使JAVA中applet小程序有机会释放其存在期间锁定的资源。只要用户不关闭浏览器,重新加载页面,浏览器则只调用start方法和paint方法重新绘制并运行小程序。