1、JAVA程序设计程序设计人民邮电出版社人民邮电出版社第第9章章 Java Applet2022-6-232Java AppletJava程序共有两大类 一类称为应用程序(Application),前几章介绍的程序都属于这一类。 另一类称为Java小应用程序(Java Applet),也称为小程序。小程序虽然也是使用Java语言编写,但它必须嵌入到HTML文档中,并在浏览器环境下才能运行。 2022-6-233小程序示例小程序示例 我们将屏幕上输出HelloWorld的程序改为Applet的形式 程序9-1 小程序示例 import java.awt.Graphics; import java.
2、applet.Applet; public class HelloWorld extends Applet String helloworld_text; public void init() /重要的起始点 helloworld_text = Hello World; /信息内容 public void paint(Graphics g) /显示信息 g.drawString(hw_text, 25, 25);/在指定位置显示信息 2022-6-234小程序设计过程小程序设计过程 编写小应用程序的过程 必须创建一个自己的类,并继承于Applet类。 Applet类属于java.applet包
3、,全称是java.applet.Applet类,继承于Panel类,所以也是一种容器。 除了从Panel类继承下来的成员外,还拥有自己特有的成员,从而有它自己的特点。 程序员自己创建的类必须是public类型的,且必须是java.applet.Applet类的子类,因此要使用语句import java.applet.Applet引入所需要的包。 2022-6-235小程序设计过程小程序设计过程小程序通常在图形环境下使用paint()方法绘制要显示的内容,而应用程序中一般是使用System.out.println()方法输出要显示的内容。在浏览器中,每当Applet显示内容需要刷新时,paint
4、()方法都会被调用,一般的程序功能也是放到这个方法内来实现。 2022-6-236小程序中使用的方法小程序中使用的方法 方法方法功能功能void init()完成完成Applet的初始化操作的初始化操作void start()启动浏览器运行启动浏览器运行Appletvoid stop()暂停暂停Applet执行执行void destroy()撤消撤消Applet的执行的执行Image getImage(URL url, String name)使用指定的使用指定的url及及name获取图像获取图像URL getCodeBase()获取获取Applet代码位置的代码位置的URLURL getDo
5、cumentBase()获取获取Web页位置页位置URLvoid stop()停止播放声音文件停止播放声音文件void loop()循环播放声音文件循环播放声音文件void play(URL url, String name)播放指定位置播放指定位置url处,名称为处,名称为name的声音文件的声音文件final static AudioClip newAudioClip(URL url)获取可用于播放指定位置获取可用于播放指定位置url处声音文件的处声音文件的AudioClip对象对象AudioClip getAudioclip(URL url, String name)获取播放指定位置,名
6、称为获取播放指定位置,名称为name的声音文件的的声音文件的AudioClip对象对象void showDocument(URL url, String target)将将url指定的指定的Web页显示于页显示于target窗口中窗口中Applet getApplet(String name)获到同一网页中名为获到同一网页中名为name的的Applet2022-6-237基本方法基本方法 小程序从创建到消亡的整个过程称为它的生命周期,其中涉及四个主要的方法。它们分别是init()、start()、stop()和destroy()。普通应用程序总是从main()方法开始执行,然而小程序与此不同,
7、它是从构造方法开始执行的。在构造方法执行结束以后,浏览器调用小程序中的init()方法,该方法完成小程序的初始化操作。 在init()方法执行结束以后,浏览器再调用start()的方法。本方法是Applet的主体,在其中可以执行一些任务或启动相关的线程来执行任务。 2022-6-238基本方法基本方法离开Applet所在页面时调用stop()方法,例如包含Applet的浏览器窗口被最小化或其他窗口被激活时。离开相关的页面时,Applet从“活跃”变为“不活跃”的状态,调用stop()方法可以停止消耗系统资源。 当浏览器终止此Applet时,调用destroy()方法。浏览器关闭时也会自动调用,
8、以清除Applet所用的所有资源。2022-6-239用于显示用于显示Applet的方法的方法 Applet中有三个与显示相关的方法 paint() update() repaint() 这是专门用于显示及刷新的方法,它们都是在java.awt.Component类中声明的。在图形环境下可以使用Applet的paint()方法绘制要显示的内容。在浏览器中,每当Applet显示内容需要刷新时,都要调用paint()方法。 2022-6-2310用于显示用于显示Applet的方法的方法Applet的显示和刷新由一个独立线程控制,称之为AWT线程。当出现以下两种情况时,AWT线程会进行有关的处理。
9、第一种情况,如果Applet部分显示内容被其他窗口覆盖,或显示区域被调整大小、最大最小化等,那么当其他窗口关闭或移开时,曾被覆盖的部分必须重画,此时AWT线程会自动调用paint()方法。 第二种情况,当需要重画显示区域时,程序会重新更新显示内容。在程序中,可以使用repaint()方法通知系统要更新显示内容。此时AWT线程会自动调用updata()方法,该方法首先将当前显示画面清空,然后调用paint()方法绘制新的显示内容。2022-6-2311用于显示用于显示Applet的方法的方法update()方法用于更新图形 它首先清除背景 然后设置前景 再调用paint()方法完成Applet中
10、的具体绘图。 程序员一般不要重写update()方法。repaint()方法主要用于重绘图形 它是通过调用update()方法来实现图形重绘的。 当组件外形发生变化时,系统自动调用repaint()方法。 一般地程序员也不要重写update()方法。2022-6-2312用于显示用于显示Applet的方法的方法paint()、update()和repaint()这三个方法的关系如图所示2022-6-2313标记标记 编写Applet程序之后,需要编译成对应的类文件,同时还需要创建一个HTML文件,然后在该文件中通过标记指定要运行的Applet程序名,将该HTML文件的URL通知浏览器,最后通过
11、浏览器装入并运行该Applet程序。 2022-6-2314标记标记标记的语法格式如下: 在标记中code、width和height这三项是必须有的,其他可以不选。因此标记的最简单形式为: 2022-6-2315标记标记各主要标记的含义是: code = appletFile.class 必选项,appletFile.class就是要运行的Applet的文件名,文件名前也可以指定包名,但前面不能有路径名。默认情况下,浏览器在HTML文件所在的服务器目录中查找该Applet文件。 width = pixels height = pixels 必选项,用来指定Applet显示区域的初始宽度和高度(
12、用像素值表示)。 codebase = codebaseURL 可选项,如果Applet文件与HTML文件不在同一个目录下,此参数指定Applet文件的URL。 alt = alternateText 可选项,指定一段可替换文本。当浏览器能理解标记但不能运行Applet程序时,这段文本可作为提示显示出来。2022-6-2316标记标记 name = appletInstanceName 可选项,它为Applet指定一个名字,使得在同一浏览器窗口中运行的其他Applet能够识别该Applet并可与之通信。 align = alignment 可选项,它指定Applet的对齐方式,可取值为left
13、、right、top、texttop、middle、absmiddle、baseline、bottom和absbottom。 vspace = pixels hspace = pixels 这两个都是可选项,分别指定Applet与周围文本的垂直间距和水平间距(用像素值表示)。 param name = appletAttribute1 value = value 可选项,它为Applet指定参数(包括参数的名称和数值)。在Applet中可通过getParameter()方法得到相应的参数。 2022-6-2317Applet与与URL 在包中定义了一个URL类,该类用于描述网络上某一资源的地址
14、(即资源所在的服务器目录)。Applet类中有两个方法可以返回URL对象。一个方法是 getDocumentBase() /它返回当前Applet所在的HTML文件的URL 例:URL myPage = getDocumentBase();另一个方法是 getCodeBase() /它返回当前Applet所在目录的URL/除非在标记中指定了codebase,否则这个URL与HTML文件的URL是一致的 例如:URL AppletURL = getCodeBase();通过URL对象,可以将声音或者图像加入Applet中。 2022-6-2318在在Applet中显示图像中显示图像 在Java中
15、,包java.awt、java.awt.image和java.applet中都提供了支持图像操作的类和方法。对图像的操作包括载入、生成、显示和处理。 在Applet中进行图像显示时,通常是首先使用Applet类的getImage()方法装载一个Image对象,然后使用Graphics类的drawImage()方法将该对象画到屏幕上。 2022-6-2319显示图像文件的显示图像文件的Applet示例示例程序9-4 是一个显示图像文件的Applet。 import java.awt.*; import java.applet.*; import .*; import java.awt.event
16、.*; public class AppletShowImagesTwo extends Applet Image image1; URL url;/调入浏览器的页面的URL String target;/表示目标Frame public void init() target=getParameter(target);/获取target参数的值 try url = new URL(getParameter(url);/获取url参数的值 catch(Exception e) /获取图像 image1=getImage(getDocumentBase(), getParameter(image1
17、); public void paint(Graphics g) g.drawImage(image1,0,0,getWidth(),getHeight(),this);/绘制image1 2022-6-2320在在Applet中播放声音中播放声音 在Applet中,播放声音文件的最简单的方法就是使用Applet类的play(),Java中也可以像处理图像那样处理声音对象。先将声音对象装入内存,然后进行播放。采用这种方式播放声音文件时,需要使用java.applet.AudioClip中的方法,因此事先需要取得一个AudioClip声音对象。 2022-6-2321Applet的事件处理的事件
18、处理 Applet中也可以有事件发生,因此也可以对其中所发生的事件进行处理。Applet的事件处理方式与普通应用程序类似:在Applet中可以为各种事件注册监听程序,然后通过监听程序对事件进行响应。 JAVA程序设计程序设计人民邮电出版社人民邮电出版社2022-6-2323在线教务辅导网:在线教务辅导网:http:/ 更多课程配套课件资源请访问在线教务辅导网更多课程配套课件资源请访问在线教务辅导网2022-6-23242022-6-23252022-6-23262022-6-23272022-6-23282022-6-2329馋死2022-6-23302022-6-23312022-6-23322022-6-23332022-6-23342022-6-23352022-6-23362022-6-23372022-6-23382022-6-23392022-6-23402022-6-23412022-6-2342PPT研究院P O W E R P O I N T A C A D E M Y2022-6-23432022-6-2344