[Java] Applet
1. Applet 类
Applet 类在使用时没有main()方法,不能独立运行,必须嵌入到网页中,在网页上显示各种信息和效果。所以Applet 类用于网页交互的应用较为普遍。我们一般把Java Applet 程序称为Java 小程序
Applet 类在java.applet 包中,在使用时必须加载该包
Applet 类的定义形式:
public class Applet extends Panel
2. Apple 类中的方法
生命周期方法:
public void init() 用于初始化,在Applet 被调用时启用,只执行一次
public void start() 启动运行Applet
public void stop() 停止Applet
public void destroy() 关闭Applet,清理Applet所调用的资源
运行状态方法:
public boolean is Active()
public String getParameter(String name)
public void showStatus(String msg)
...
3. Applet 程序示例
import java.awt.*;
import java.applet.*;
public class Example extends Applet{
String s;
public void init(){
s = "Welcome";
}
public void paint(Graphics g){
g.drawString(s, 30, 30);
}
}
在HTML 中嵌入Applet
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300></applet>
</HTML>
4. 向Applet 传递消息
我们不仅可以将信息从Applet 传递到浏览器中显示,也可以从浏览器中传递消息到Applet 中。在网页中,我们使用param定义变量;在Applet中,使用getParameter()获取变量的值
eg:
import java.awt.*;
import java.applet.*;
public class Example extends Applet{
String s;
public void init(){
s = getParameter("p");
}
public void paint(Graphics g){
g.drawString(s, 30, 30);
}
}
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300>
<param name=p value="你看到我了吗">
</applet>
</HTML>
5. 多媒体应用
5.1 绘制图形
eg:
import java.awt.*;
import java.applet.*;
public class Example extends Applet{
public void paint(Graphics g){
g.setColor(new Color(0,0,255));
g.fillOval(20, 20, 100, 100);
g.drawRect(200, 20, 100, 50);
g.fillArc(200, 200, 100, 200, 0, 180);
}
}
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300></applet>
</HTML>
5.2 绘制图像
Applet类加载图像的方法: public Image getImage(URL url, String name)
图像加载后,便可以在Applet 中绘制图像了。在Applet 中绘制图像是在其 paint() 方法中实现的。这时就要调用Graphics 类中的drawImage() 方法完成,该方法的声明形式: public void drawImage(Image img, int x, int y, int width, int height, ImageObserver obs)
eg:
import java.awt.*;
import java.applet.*;
public class test3 extends Applet{
Image img;
public void init(){
img=getImage(getDocumentBase(), "applet.jpg");
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, 10, 10, this);
g.drawImage(img, 10, 0, 20, 20, this);
g.drawImage(img, 30, 0, 40, 40, this);
g.drawImage(img, 70, 0, 80, 80, this);
g.drawImage(img, 150, 0, 160, 160, this);
g.drawImage(img, 310, 0, 320, 320, this);
}
}
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300></applet>
</HTML>
5.3 事件处理
eg:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class test3 extends Applet implements ActionListener{
int i = 20;
JButton button1, button2;
public void init(){
button1=new JButton("变大");
button2=new JButton("变小");
button1.addActionListener(this);
button2.addActionListener(this);
}
public void paint(Graphics g){
add(button1);
add(button2);
g.fillOval(30, 30, i, i);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == button1){
i = i + 10;
repaint();
}else if(e.getSource() == button2){
i = i-10;
repaint();
}
}
}
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300></applet>
</HTML>
5.4 播放音乐
eg:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.JButton;
public class test3 extends Applet implements ActionListener{
AudioClip ac;
Button button1, button2, button3;
public void init(){
ac = getAudioClip(getCodeBase(), "Test.wav");
button1=new Button("开始");
button1 = new Button("停止");
button1 = new Button("循环");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
add(button1);
add(button2);
add(button3);
}
public void stop(){
ac.stop();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == button1){
ac.play();
}else if(e.getSource() == button2){
ac.stop();
}else if(e.getSource() == button3){
ac.loop();
}
}
}
<HTML>
<HEAD>
<TITLE>Applet Example</TITLE>
</HEAD>
<applet code=Example.class width=300 height=300></applet>
</HTML>