《Java语言程序设计 教学课件 ppt 作者 汪远征 周巧婷 ch12》由会员分享,可在线阅读,更多相关《Java语言程序设计 教学课件 ppt 作者 汪远征 周巧婷 ch12(92页珍藏版)》请在金锄头文库上搜索。
1、第12章 Java Applet小程序设计,第12章 Java Applet小程序设计,Applet是Java编程语言的最初应用之源,正是由于Applet的出现,才使得Web页面的交互又有了一种更安全实现方式,可以说Applet对于Java的迅速成长功不可没。,12.1 Java Applet的基本概念,Applet类是java.awt.Container的子类,也就是说,要编写Applet小程序需要用到sun公司编写的Java可视化类库AWT(Abstract Windows Toolkits)或swing。 本书只介绍AWT库中的Applet程序开发方法。,12.1 Java Applet
2、的基本概念,12.1.1 Applet概述 Java Applet是用Java语言编写的小应用程序,这些程序可以直接嵌入到HTML页面中,由支持Java的Web浏览器(IE、Nescape、Mozilla等)下载并解释执行 通过Applet可以处理图像、声音、动画等多媒体数据,从而设计出生动美丽的Web页面,它可以大大提高Web页面的交互能力和动态执行能力.,12.1 Java Applet的基本概念,12.1.1 Applet概述 Applet程序要想在浏览器中运行必须要嵌入HTML文件中,在HTML文件中与Applet相关的信息应至少包含以下三点: 1) 字节码文件名。 2) 字节码文件的
3、地址。 3) 在网页上显示Applet的方式。,12.1 Java Applet的基本概念,12.1.1 Applet概述 Applet源文件的命名和Java独立应用程序(Application)相同,都是*.java,编译过的Applet也是扩展名为.class的类文件。 Applet与Java独立应用程序的区别在于,Java的独立应用程序是由解释器直接从其main()方法开始运行的,而Java Applet的运行则并非如此,它要比独立应用程序复杂得多。,12.1 Java Applet的基本概念,12.1.1 Applet概述 由于Applet是在Web浏览器中运行的,所以它不能通过键入一
4、个命令来启动,它的运行基本上要经历URL的载入、HTML的载入、Applet类的载入、Applet的运行等过程。,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 Java小程序Applet程序无法通过解释器解释执行,必须通过appletviewer或放在一个HTML文件中,再在支持Java的浏览器显示执行。 对希望通过Internet网络来传递理想网页的人来说,Applet是极其有用的工具。 它提供了大量控制页面外观和处理交互事件的便利工具,能大大提高页面的生动性和交互性。,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 1.
5、 创建Applet类 在已有的Java项目中可以创建Applet可视类。 【例12-1】创建一个Applet可视类。 步骤如下: 选择“文件”“新建”“Visual Class”,打开“New Java Visual Class”对话框,在“包”栏中输入程序包的名称“ch12”。“名称”栏中输入类名“Ex12_1”。,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 1. 创建Applet类 【例12-1】创建一个Applet可视类。 步骤如下: 在“Style”列表框中选择“AWT” “Applet”。 单击“完成”按钮,含有图形程序界面以及代码的编辑器窗口被
6、打开,如图12-2所示。,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 1. 创建Applet类 【例12-1】创建一个Applet可视类。 步骤如下: 由Eclipse自动完成的代码如下,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 2. 添加组件 用鼠标右键单击GUI程序界面的任何位置,在弹出的快捷菜单中选择“Set Layout”“null”。在“Palette”面板中打开“AWT Controls”,依次用鼠标在程序界面中“画”出一个标签和一个按钮,并在“属性”窗口修改其属性,如图12-3所示。,12.1 Java
7、 Applet的基本概念,12.1.2 Applet小程序开发 3. 编写代码 为按钮添加事件代码。用鼠标右键单击按钮Button的任何位置,在快捷菜单中选择“Events”“actionPerformed”,将上述操作自动产生的代码改为,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 4. Applet小程序的运行 有两种方式运行Applet小程序:一是使用“小程序查看器”,一是在HTML网页中运行。 1) 使用“小程序查看器”:选择菜单“运行”“运行方式”“1 Java Applet”,程序运行结果如图12-4所示。 图12-4 程序在小程序查看器中的运行
8、结果,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 4. Applet小程序的运行 2) 在HTML网页中运行:bin文件夹中,编写如下HTML文件“Ex12_1.html”: ,12.1 Java Applet的基本概念,12.1.2 Applet小程序开发 4. Applet小程序的运行 运行该网页文件(双击该文件),即得运行结果如图12-5所示。 图12-5 程序在网页中的运行结果,12.1 Java Applet的基本概念,12.1.3 Applet类 Applet小应用程序的实现主要是依靠其基础类java.applet.Applet类,所有的App
9、let小应用程序均为其子类。 java.applet.Applet类是java.awt.panel的子类,Applet类的方法可由Panel类、Container类和Component类继承而来。,12.1 Java Applet的基本概念,12.1.3 Applet类 由例12-1知,在编写Applet小应用程序时,必须首先创建一个如下的类: import java.awt.* import java.applet.* public class Ex12_1 extends Applet /程序代码 ,12.1 Java Applet的基本概念,12.1.3 Applet类 import j
10、ava.awt.* import java.applet.* public class Ex12_1 extends Applet /程序代码 由上述程序段可见,Applet的类必须声明为public,因为它要被外部代码调用,其名称必须符合类名称的约定并且与其源文件名一致,即文件名必须是Ex12_1.java。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 在独立的Java应用程序中,程序的启动是由main()方法开始的,而Applet小应用程序是在浏览器中运行的,它的内部不包含main()方法。 取而代之的是利用Applet类对象的四个方法init()、sta
11、rt()、stop()和destory()等方法,这些方法在特定的时刻会被自动调用执行,以控制Applet的生命周期。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 1. init方法 Init()方法为Applet的正常运行做数据的初始化工作,当一个Applet被创建并载入浏览器时,系统首先调用的就是该方法。 本方法只在Applet首次载入时调用,并在start()方法调用之前执行完毕,它的作用与独立Java应用程序中的main()方法类似.,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 1. init方法 可以通过该方法从网页
12、向Applet传递参数及添加用户界面的基本组件等。Applet的子类可以对本方法重载,否则将不执行任何操作。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 2. start方法 一旦init()方法执行完成,将自动调用start()方法。start()方法的执行,使得Applet成为活动,而且,只要Applet成为可见的,start()方法就执行一次,即当浏览器页面被最小化、刷新或当用户离开包含该Applet的主页后又再返回时,start()方法会被再次执行。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 2. start方法 与
13、init()的单次执行不同,start()方法可以被多次执行。所以在设计程序时,应将只执行一遍的代码放在init()方法中,而需要每次可见都执行的代码放在start()方法中,如启动一个动画、声音等。 Applet的子类可以对本方法重载,否则将不执行任何操作。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 3. stop方法 stop()方法是在Applet成为不可见时被调用,即当浏览器被最小化或链接至另一个页面时,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法,如停止声音、动画等。这个方法与start()方法是一对相对的动作,s
14、tart()可以使Applet中的某行为激活,而stop则是停止某个行为。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 4. destroy方法 destroy()方法是在浏览器正常关闭时,由Java自动调用的方法,系统通过destroy()方法回收任何一个与系统无关的内存资源。当然,如果这个小应用程序仍然处于活动状态,Java会在调用destroy()之前,先调用stop()方法。Applet的子类可以对本方法重载,否则将不执行任何操作。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 4. destroy方法 【例12-2】A
15、pplet各方法被调用的时刻。 步骤如下: 1) 选择“文件”“新建”“Visual Class”,打开“New Java Visual Class”对话框,在包“ch12”中创建Applet类“Ex12_2”。,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 4. destroy方法 【例12-2】Applet各方法被调用的时刻。 2) 在“Palette”面板中打开“AWT Controls”,用鼠标单击“TextArea”,在程序界面中“画”出一个文本域textArea。如图12-6所示。,12.2 Applet的生命周期与线程,12.2.1 Applet的
16、生命周期 4. destroy方法 【例12-2】Applet各方法被调用的时刻。 3) 修改代码: 添加成员变量: static int objCount, initCount,startCount, stopCount,destoryCount; static String str = “;,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 4. destroy方法 【例12-2】Applet各方法被调用的时刻。 3) 修改代码: 类的构造方法中添加代码: objCount+; str+=“对象创建次数:“+objCount+“n“;,12.2 Applet的生命周期与线程,12.2.1 Applet的生命周期 4. destroy方法 【例12-2】Applet各方法被调用的时刻。 3) 修改代码: init()方法中添加代码: initCount+; str+=“init()创建次数:“+initCount+“n“; textArea.setText(str);,12.2 Applet的生命周期与线程