欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

教程  Java语言学习—第十八章 Java Applet[Java基础]

Java 原创 1043 0评论

内容概要:

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

赞 (0) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽