内容概要:
1.制作Applet
2.Applet的生命周期
3.Applet的多媒体处理
4.Applet参数
5.Applet与安全
1.制作Applet
Applet类位于java.applet包中,继承了Panel类。Applet也是一种容器,所以包含AWT组件。但Applet还有许多自己的特有成员,不同于从Panel类继承的成员。
要想是一个类称为Applet类,就让他继承Applet类。正如一个类继承了Frame类变成了一个Frame类一样。
import java.applet.*;
public class MyApplet extends Applet{。。。}
MyApplet继承了Applet类,它是一个Applet类。
Applet1.java
import java.awt.*; import java.applet.*; public class Applet1 extends Applet{ public void paint(Graphics g){ this.setBackground(Color.red); g.drawString(“Applet的世界...",20,50); }}
我们发现上面的代码中未包含main()方法,与一般的java程序不同,Applet在Web浏览器中运行,所以不需要main()方法。
下面的代码Applet1.html引用上面的代码:
<html><body> <h1>制作Applet</h1> <Applet code="Applet1.class" width=150,height=100> </Applet> </body> </html>
注:Applet1.class与Applet1.html必须在同一目录下,才能正常运行。
JDK提供了Applet Viewer,可以方便快速的查看Applet运行结果。使用Applet Viewer工具的命令如下:appletviewer Applet1.html
2.Applet的生命周期
Applet在Web浏览器中运行,不包含main()方法,而是由init(),start(),stop()及destroy()方法取代了。这些方法在特定的时刻会自动调用执行。
Applet类的常用方法:
public void init()——完成Applet的初始化操作
public void start()——启动浏览器运行Applet
public void stop()——暂停Applet执行
public void destroy()——撤销Applet的执行
IE会在Applet类载入内存后,创建Applet对象,然后调用Applet对象的init()方法,接下来调用start()方法。执行顺序:加载Applet类→创建Applet对象(调用构造函数)→init()→start()
当用户从保护Applet的Web页面转到其他页面时,浏览器会自动调用Applet类的stop()方法。因此,应该将暂停Applet运行的代码放到stop()方法中。若再次返回包含Applet的页面,Applet对象再次被创建,顺次调用init()方法与start()方法。过程如下:创建Applet对象(调用构造函数)→init()→start()
destroy()方法在用户退出浏览器时被调用。因此,释放Applet所占资源的代码放到此方法中。
3.Applet的多媒体处理
1)图像处理
Applet也是AWT组件,因此它处理图像的方式与Java2D的使用一样。并且提供了getImage()方法,可以方便的获取图像对象。
Applet类中与图像处理有关的方法:
public Image getImage(URL url)——获取url指定的图像对象。
public Image getImage(URL url,String name)——使用指定的url及name,获取图像。
Applet也提供了获取类的位置与Web页位置的方法:
public URL getCodeBase()——获取Applet code位置的URL
public URL getDocumentBase()——获取页面Web页面位置的URL。
若Applet类与图像文件处于同一位置下,加载文件时可以如下进行:Image img1=getIamge(getCodeBase(),“图像文件名”);
若Web页所在的目录中存在一个称为Images的目录,那么当我们需要加载images目录中的图像文件时,如下:Image img2=getImage(getDocumentBase(),“images/图像文件名”)
2)声音处理
Java可以播放声音的文件格式有AIFF、AU、WAV,MIDI、RMF等。Applet包中的AudioClip接口包含了与声音相关的API,它可以实现声音文件的反复播放,也可以停止播放。
AudioClip接口的方法:
void play();——播放声音文件一次
void stop():——停止播放声音文件
void loop();——循环播放声音文件
若想播放声音文件,只需从Applet对象中获取AudioClip对象即可。
Applet类中与声音有关的方法:
public void play(URL url)——播放指定url处的声音文件。
public void play(URL url,String name)——播放指定位置url处,名称为name的声音文件。
public final static AudioClip newAudioClip(URL url)——获取可以于播放指定位置url处声音文件的AudioClip对象。
public AudioClip getAudioclip(URL rul)
public AudioClip getAudioclip(URL rul,String name)——获取播放指定位置声音文件的AudioClip对象。
newAudioClip()方法是static方法,它可以在不创建Applet对象的条件下创建AudioClip对象。此方法不仅在Applet中播放声音,也可在一般Java应用程序中播放声音文件。
AudioClip audio=Applet.newAudioClip(url);
4.Applet参数
Applet可以从Web页面的<para>标记中获取字符串的信息。这对于创建Web页面经常使用滚动字符串很有用。在不同的Web中可以使用不同字符串。
如下所示,<para>标记位于Applet标记中,并分别指定name与value的值。
<Applet...>
<param name="变量名称" value="值">
.....
</Applet...>
name是参数变量的名称,value指定变量的值。Applet若想获取参数的值,就必须调用getParameter()方法:String param=getParameter("变量名");
使用浏览器控制Applet
若给包含在Web页中的Applet命名,那么就可以实现在浏览器中调用Applet的方法,从而达到用浏览器控制Applet的目的。Applet的名称存入<Applet>标记的name属性中。
<Applet code="Applet类" name="名称" width=300,height=100>
</Applet>
使用Applet控制浏览器
AppletContext类与包含Applet的浏览器及Applet环境有关联。利用AppletContext类,不仅可使Applet控制浏览器,也可使其实现对同一网页中其他Applet的控制。
AppletContext类常用方法
void showDocument(URL url);——显示url指定的Web页。
public void showDocument(URL url,String target);——将url指定的Web页显示于target窗口中。
Applet getApplet(String name);——获取同一网页中名为name的Applet。
Enumeration getApplets();——获取同一网页中所有的Applet。
void showStatus(String status);——向浏览器的状态栏显示status字符串。
调用Applet的getAppletContext()方法,可以获取AppletContext对象。
控制其他Applet
调用AppletContext的getApplet()、getApplets()方法,可以实现一个Applet对同一页面的其他Applet的控制。
若2个Applet被调入同一个Web页中,我们将Applet8.class命名为applet8。下面是调用2个Applet的HTMl标记:
<Applet code="Applet8.class" name="applet8" width=300,height=100>
</Applet>
<Applet code="Applet8_Controller.class" width=300,height=100>
</Applet>
若想实现Applet8_Controller对Applet8的控制,则首先要获取Applet8_Controller的AppletContext对象,然后在调用AppletContext对象的getApplet()方法获取Applet8对象。并且由于getApplet()方法返回的是Applet型对象,所以需要将返回的对象转换为Applet8类型的对象。
//获取AppletContext对象
Appletcontext context=getAppletContext();
//获取同一页面中名为applet8的Applet对象
Applet8 applet=(Applet8)context.getApplet("applet8");
5.Applet与安全
用户访问Applet的页面时,页面中的Applet都会被下载并运行。如果恶意程序设计的Applet也会运行,导致用户的安全受到影响。Applet提供了安全保障,如果Applet发现其内含有存在危险的代码,就会抛出安全异常停止执行。
Applet包含下列安全事项:
Applet无法运行用户计算机中的程序。
Applet无法访问用户计算机中的文件。
Applet无法获取用户计算机中的大部分信息。
Applet无法调用用户计算机中的native method。
Applet只能与提供本Applet的服务器通信。
问题思考
转载请注明: ITTXX.CN--分享互联网 » Java语言学习—第十八章 Java Applet[Java基础]
最后更新:2018-10-15 15:13:35