面向对象技术Java Object-Oriental Technology Java 第9章 Java小应用程序Applet 广东科学技术职业学院计算机工程技术学院 曾文权老师 Email:bless365@126.com 面向对象技术Java
学习目标(Course Objectives) 第9章 Java小应用程序Applet 学习目标(Course Objectives) 了解小应用程序的原理 掌握小应用程序的开发步骤 能用Java语言编写小应用程序 面向对象技术Java
9.4 Applet的多媒体(Multimedia)应用 9.5 Applet间的通信 小结 第9章 Java小应用程序Applet 9.1 Applet入门 9.2 Applet的开发步骤 9.3 Applet的常用方法 9.4 Applet的多媒体(Multimedia)应用 9.5 Applet间的通信 小结 面向对象技术Java
? 9.1 Applet Introduction 引入: (1)C/B应用模式中,如何使Browser界面更为生动,即在Browser环境中实现图像表示、声音播放等多媒体功能? (2)具有对Browser客户的交互事件处理、多线程运行、网络访问等灵活的Web功能。 (3)安全、跨平台的网络应用程序。 ? 面向对象技术Java
9.1 Applet Introduction ? Solution: Java Applet 面向对象技术Java
9.1 Applet Definition An applet is a program written in the JavaTM programming language that can be included in an HTML page, much in the same way an image is included. When you use a Java technology-enabled browser to view a page that contains an applet, the applet's code is transferred to your system and executed by the browser's Java Virtual Machine (JVM). 面向对象技术Java
9.1 Applet Secutiry SERVER Browser connection Applet被下载的 applet file 本地程序 SERVER Browser Applet被下载的 connection applet file SERVER connection local 与applet无关的 本地方法 Applet的沙箱模型 面向对象技术Java
Applications vs. Applets (1) Similarities They both are Java programs. (2) Differences An applet is a small program that is intended not to be run on its own, but rather to be embedded inside another application. 面向对象技术Java
Applications vs. Applets——Privileges (1) Applets are not allowed to read from, or write to, the file system of the computer viewing the applets. (2) Applets are not allowed to run any programs on the browser’s computer. (3) Applets are not allowed to establish connections between the user’s computer and another computer except with the server where the applets are stored. 面向对象技术Java
SourceFile: JavaWorld.java 9.2 Applet的开发步骤 编辑Applet的Java源文件( Edit Source Applet) import java.awt.*; import java.applet.*; public class JavaWorld extends Applet { public void paint(Graphics g) g.drawString("Java World!",15,25); } SourceFile: JavaWorld.java 面向对象技术Java
ByteCodeFile: JavaWorld.class 9.2 Applet程序开发步骤 Compiling Programs: On command line javac JavaWorld.java ByteCodeFile: JavaWorld.class 面向对象技术Java
Creating an HTML File Embeded with Applet: <title> java World! Appplet<title> <applet code="JavaWorld.class“ width=300 height=200> </applet> HtmlFile: JavaWorld.html 面向对象技术Java
Viewing Java Applets: 面向对象技术Java
Applet Viewer Utility : Example: appletviewer JavaWorld.html Example: Run Applet Viewer 面向对象技术Java
9.2 Applet程序开发步骤 运行结果 面向对象技术Java
9.2 Applet程序开发步骤_归纳 (1) 编译Applet javac JavaWorld.java (2) 创建HTML文件(JavaWorld.html) (3) 浏览JavaWorld.html • Appletviewer JavaWorld.html • 浏览器(Browser) <html> <title> java World! Appplet<title> <applet code="JavaWorld.class“ width=300 height=200> </applet> 面向对象技术Java
9.3 How to write Applet_Class、Method (1) Applet类是所有Applet应用的基类。所有小应用程序都要继承java.applet.Applet类。该类由Sun公司事先定义好了.每个小应用都有一个public类型的主程序类 import java.applet.*; public class MyApplet extends Applet { …} (2) Applet的主要方法 public Applet()//构造方法 public boolean isActive() //是否处于活动状态 public URL getDoucmentBase()//Applet运行目录URL地址 面向对象技术Java
9.3 How to write Applet_Class、Method public URL getCodeBase()//得到代码的URL地址 public void showStatus(String msg)//显示状态 public getImage(URL url)//装入图象 public void play(URL url)//播放音频剪辑 public void destroy()//撤销Applet,释放资源 面向对象技术Java
9.3 How to write Applet_Class、Method init()方法 对加载的applet进行初始化 start()方法 在初始化后,自动调用start()方法 离开网页后返回,系统再执行一遍start() stop()方法 用户离开网页时调用 destroy()方法 关闭Applet,释放资源 面向对象技术Java
<Applet code= ….> </Applet> 2. Browser loads HTML document http://someLocation/file.html 1. Browser loads URL <Html> <Applet code= ….> </Applet> 2. Browser loads HTML document Applet class 3. Browser loads applet classes Location: http://someLocation/file.html Loading... 4. Browser run applet 面向对象技术Java
9.3 Write Html Embeded with Applet Applet和HTML (1) CODE标记 声明Applet应用的class文件名 CODE=“TestApplet.class” (2) CODEBASE标记 指定Applet代码的URL地址 CODEBASE=“www.sun.com/Applet” (3) ALT标志 指定替代文本信息,如果找不到代码,则显示它 ALT=“Java Not Support” 面向对象技术Java
9.3 Write Html Embeded with Applet (4) ALIGN标记 Applet窗口在HTML文档窗口中的位置,ALIGN的值可以是MIDDLE、TOP和BOTTOM (5) VSPACE、HSPACE标记 指定Applet窗口周围的空白 (6) NAME标记 指定加载的Applet名字,以便其它Applet引用 面向对象技术Java
9.4 Applet的应用_Multimedia 功能:支持两种主要的图像格式:GIF、JPEG。 方法: Applet类提供了一个重要的方法: (1)获得一个用于显示在屏幕上的Image对象的引用: public Image getImage(URL url,String name); (2)显示图像: public boolean drawImage(Image img,int x,int y, ImageObserver observer); 注: 由于Applet类已经实现了ImageObserver接口,因此它可以作为加载图像时的图像观察器,即将this作为最后一个参数传递给drawImage()便可将Applet对象传递过去。 面向对象技术Java
9.4 Applet的应用_Multimedia import java.awt.*; import java.applet.*; public class ShowImage extends Applet { Image picture; public void init() { picture=getImage(getCodeBase(),"Image.gif"); } public void paint(Graphics g) g.drawImage(picture,0,0,this); 面向对象技术Java
9.4 Applet的应用_Multimedia Displaying Images : 面向对象技术Java
9.4 Applet的应用_Multimedia Play Sound: 功能:可以播放..au、.aiff、.wav、.midi、.rfm格式的音频。 方法: (1)获得一个用于播放的音频对象(AudioClip类型对象): getAudioClip(Url url,String name); (2)处理声音文件: play() 播放声音文件 name; loop() 循环播放name; stop() 停止播放name。 面向对象技术Java
9.4 Applet的应用_Multimedia Example: Play Sound. import java.awt.*; import java.applet.*; public class Sound extends Applet { public void paint(Graphics g) AudioClip audioClip=getAudioClip(getCodeBase(),"Sample.AU"); //也可以是WAV声音文件 g.drawString("Sound Demo!",10,20); audioClip.loop(); //循环播放 } 面向对象技术Java
9.4 Applet的应用_Multimedia 如何利用Applet播放“铃”声(ringin.wav)? import java.awt.*; import java.applet.*; public class Sound extends Applet { public void paint(Graphics g) AudioClip audioClip=getAudioClip(getCodeBase(),“ringin.wav"); //也可以是WAV声音文件 g.drawString("Sound Demo!",10,20); audioClip.loop(); //循环播放 } 面向对象技术Java
9.5 Applet间的通信 Applet之间的通信 同一HTML页中的多个Applet利用其名字来区分彼此,并能相互通信。一个Applet可通过下面的方法得到其它Applet的引用: AppletContext ac=this.getAppletContext Applet applet=ac.getApplet(“Applet1”) 其中Applet在HTML文件中用如下方式命名: <Applet code=“Applet.class” name=“Applet1”width=300 height=300> </Applet> 面向对象技术Java
9.5 Applet间的通信 Applet之间通信示例 面向对象技术Java
<meta http-equiv="Content-Type" content="text/html; harset=GBK"> Applet通信示例的html文件 <html> <head> <meta http-equiv="Content-Type" content="text/html; harset=GBK"> <title>HTML Test Page</title> </head> <body> <applet codebase = ".“ code = "appletproj.Applet1.class" name = "Applet1" width = "400" height = "300" hspace= "0" vspace = "0" align = "top"> </applet> <hr> <applet codebase = "." code = "appletproj.Applet2.class" name = "Applet2" width= "400" height= "300" hspace= "0" vspace = "0" align = "top"> </body> </html> 面向对象技术Java
Applet之间通信示例关键代码 9.5 Applet间的通信 Applet1: AppletContext ac=this.getAppletContext(); Applet appletColor=ac.getApplet("Applet2"); appletColor.setBackground(Color.red) Applet2: AppletContext ac=this.getAppletContext(); Applet appletControl=ac.getApplet("Applet1"); TextField textField=(TextField)appletControl.getComponent(3); textField.setText(textField1.getText()); 面向对象技术Java
(1)前述主要使用AppletViewer浏览Applet。 (2)若使用浏览器浏览Applet须安装Web服务器,并可通过Java控制台可查看Applet的运行情况,Java控制台可在Internet Explore的工具-“Internet选项”的对话框中设置是否启动。 面向对象技术Java
小结 本次课介绍了开发小应用程序(Applet)的步骤,Applet的结构、Applet的安全问题以及如何编写实现网页动画、声音播放的Applet程序。 面向对象技术Java
(2)一般来说,Applet的start()方法在什么时候被调用? (3)Applet使用哪个方法刷新其窗口画面? 思考题 (1)所有小应用程序都是哪个类的子类? (2)一般来说,Applet的start()方法在什么时候被调用? (3)Applet使用哪个方法刷新其窗口画面? (4)如何在Applet中显示图像? (5)如何在Applet中播放声音? 面向对象技术Java
谢 谢! 面向对象技术Java