目录
Java Applet 结构
Java Applet 的运行原理
一个Java Applet 程序的执行过程称为这个 Java Applet 的生命周期。
(1) 初始化: init()
(2) 启动 : start()
(3)停止:stop()
(4) 删除 : destroy()
(5) 描绘 : paint(Graphics g)
在Java Applet 中播放声音
网页传值
小结:
Java Applet程序(也称Java小程序),是Java语言中的一种特殊的嵌入式程序,有浏览器中内置的JVM执行。
Java Applet 结构
一个Java Applet 程序中必须有一个类是Applet 类的子类,该子类称作Java Applet 程序的主类,必须修饰为 public 的。Applet 类是 java.applet 包中的一个类。同时还是 java.awt 包中Container ( 容器类),因此一个 Java Applet 程序主类的实例是一个容器,用户可以在容器内添加组件,处理组件事件,完成工作。
Java Applet 的运行原理
Java Applet 通过浏览器来执行,和 Java 程序有许多不同之处。下面来讲解Java Applet 的运行原理。
1. 源文件 Examle.java
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
public class Example extends Applet {
/**
*
*/
private static final long serialVersionUID = 1L;
Button button1,button2;
int sum;
@Override
public void init() {
// TODO Auto-generated method stub
button1 = new Button("Yes");
button2 = new Button("NO");
add(button1);
add(button2);
}
@Override
public void start() {
// TODO Auto-generated method stub
sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
}
@Override
public void stop() {
// TODO Auto-generated method stub
super.stop();
}
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
g.setColor(Color.blue);
g.drawString("程序设计方法",20,60);
g.setColor(Color.red);
g.drawString("sum=" + sum,20,100);
}
}
一个 Java Applet 程序,也是由若干个类组成,但必须有一个类是Applet 类的子类,Applet 类是系统提供的,把这个类(也就是Applet 类的子类)称为Applet 类的主类。主类必须用public 修饰。一个Java Applet 程序,不再需要main方法,但必须有一类扩展了Applet 类。保存上面源文件。命名 Example.java.
2.编译 javac Example.java
3.运行
Java Applet 属于嵌入是开发的一种,嵌入式主类的实例化由该嵌入程序的平台的JVM负责。这样,必须向这样的平台提供相应的配置文件,嵌入该平台使用的配置文件,通知平台JVM创建主类的对象,并让该对象产生相应的行为
Java Applet 必须嵌入到Web 浏览器中去,因此,必须编写一个超文本文件,即配置文件,告诉浏览器运行这个 Java Applet.
show.html
超文本中的标记 告诉浏览器运行一个 Java Applet 程序,code 告诉我们运行那个程序。后面是.class 字节码文件。
一个Java Applet 程序的执行过程称为这个 Java Applet 的生命周期。
Java Applet 程序的生命周期涉及 init()、start()、stop()、destroy() 和 paint(Graphics g) 方法,这些方法是一个完整的 Java Applet 程序所包含的。
浏览器解释执行show.html 时。如果发现有 applet 标记,浏览器内置的 JVM 将使用 主类创建一个对象,该对象是容器,他的大小由 show.html 中的 width 和 heigth 决定。
习惯上把浏览器内置 JVM 创建一个主类对象,称为一个applet 。applet 具有以下行为
(1) 初始化: init()
applet 首先自动调用 init() 完成必要的初始化工作,主要任务创建所需要的其他对象,设置初始状态,装载图像,设置参数。此方法只被调用一次。该方法是父类Applet 中的方法。Example.java 重写了此方法。
(2) 启动 : start()
初始化后,自动调用次方法,可以被多次调用。
(3)停止:stop()
当浏览器离开applet 所在的页面时,applet 调用 stop(),如果再次回到此页,applet 将再次调用strat(),离开再次调用stop() stop()也可以多次调用。
(4) 删除 : destroy()
当浏览器结束浏览时,applet 执行destry() 方法,结束applet 的生命。
(5) 描绘 : paint(Graphics g)
此方法可以使一个 applet 在屏幕上显示某些信息,例如文字、色彩、背景、图像,在applet 的生命周期中可以多次调用paint 方法。
在调用 Java 程序时,可以使用浏览器打开show.html.如果浏览器不支持applet (没有内置JVM),可以使用JDK提供的appletviewer调试 Java Applet.
文件所在目录地址> appletviewer show.html
Java Applet 增强了B/S模式的功能。C/S 模式中的客户端使用应用程序和服务器交互信息,优点为客户提供工更多的功能,缺点不利于系统的维护。B/S 模式中的客户端使用浏览器和服务器交互信息,不能各位客户端提供较多的功能,优点便于系统的维护。通过一个浏览器器访问一个含有aoolket 标记的网页,下载执行一个 Java Applet 。何以很好弥补B/S 模式的不足。
在Java Applet 中播放声音
用Java 可以播放 au、aiff、wav、midi、rfm格式的音频。au.格式是早期唯一支持的音频格式。为了播放音频首先要创建一个AuidoClip 对象。java.applet包中的类,可以使用Applet 类的一个静态方法 :newAudioClip(java.net.URL)或者Applet 类的实例方法getAudioClip(Url url,String name)
根据 url 提供的地址,以及处理该处的声音文件nam,获得一个用于播放音频的对象。这个对象使用一下方法来处理声音文件:
play() : 播放声音文件loop() : 循环播放stop() : 停止播放
例子:
Example2
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Example2 extends Applet implements ActionListener{
AudioClip clip;
Button buttonPlay,buttonLoop,buttonStop;
public void init(){
clip = getAudioClip(getCodeBase(),"dungWav");
buttonPlay = new Button("开始播放");
buttonLoop = new Button("循环播放");
buttonStop = new Button("停止播放");
buttonPlay.addActionListener(this);
buttonLoop.addActionListener(this);
buttonStop.addActionListener(this);
add(buttonPlay);
add(buttonLoop);
add(buttonStop);
}
public void stop(){
clip.stop();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == buttonPlay){
clip.play();
}else if(e.getSource() == buttonLoop){
clip.loop();
}else if(e.getSource() == buttonStop){
clip.stop();
}
}
}
网页传值
用户可以通过若干个 标志把值传入Java Applet 中去,这样实现了动态地向 Java Applet 程序传递信息,而不必重新编译,便于Java Applet 的维护和使用。
下面通过 Html 向Java Applet 传递两个整数。
import java.applet.Applet;
public class Example3 extends Applet{
int x,y,sum;
public void init(){
String s1 = getParameter("girl");
String s2 = getParameter("boy");
x = Integer.parseInt(s1);
y = Integer.parseInt(s2);
sum = x + y;
}
}
param.html
小结:
在 Java Applet 程序中必须有一个 public 类 是 Applet 类的子类,称为 Java Applet 类的主类。Java Applet 必须嵌入到浏览器中运行。浏览器内置的 JVM 用 Java Applet 程序的主类创建对象,该对象称为一个 applet。一个applet 在他的生命周期内要调用init、start、stop、paint、和destroy等方法。