[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>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号