一、Applet
1).网页脚本编程的原理
vbscript
html标签
2).网页中使用Applet,编程实例:
import java.applet.*;
import java.awt.*;
import java.awt.event.*
public class MyApplet extends Applet
{
public void paint(Graphics g)
{
g.drawString("this is a simple applet,50,50");
//不能使用System.out.println
}
public void init()
{
addMouseListener(new MouseAdapter)
{
int orgX;
int orgY:
public void mousePressed(MouseEvent e)
{
orgx=e.getX();
orgY=e.getY();
}
public void mouseReleased(MouseEvent e)
{
getGraphics().drawLine(orgX,orgY,e.getX(),e.getY());
}
});
}
}
保存<applet code=MyApplet width=300 heigth=300></applet>为html文件。
3).Applet有浏览器来启动执行,启动执行过程如下:
①浏览器载入HTL文件
②浏览器载入HTML文件中引用的Applet的字节码
③浏览器启动java虚拟机执行Applet
4).Applet类的继承关系
java.lang.Object
-->java.awt.component
-->java.awt.Container
-->java.awt.panel
-->java.applet.Applet
5)Applet程序通常要覆盖的方法:
①init()方法//通知Applet进行初始化,只被调用一次
②start()//启动 stop()//关闭,此两方法配合使用
③destroy()//释放init的资源,
④paint()方法//调用Graphics中方法
编程实例:显示动画的Applet小程序
/*用于定时轮循显示一个数组中的10幅图像以产生动画效果。分两阶段完成:
①实现定时功能:让一个index的值,每隔100毫秒在0-9之间循环变化显示②增加显示图像功能,只要在每次改变index变量的值后,显示第index个图像,就可以产生动画效果
新线程sleep,实现暂停*/
import java.awt.*;
import java.applet.*;
public class JavaApp extends Applet implements Runnable {
int index = 0;
Image []imgs = new Image[10];
public void init() {
for(int i = 0;i<10;i++)
{
imgs[i] = getToolkit().getImage(getCodeBase(),"imgs//T"+(i+1)+".gif");
//获得图像对象可以调用Component.getToolkit()方法。由于Applet是Component子类,可以直接使用
}
new Thread(this).start();
}
public void paint(Graphics g) {
g.drawImage(imgs[index],0,0,this);//this指组件自身
/*g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
g.drawString("" + index, 0, 60 );*/
}
public void run(){
while(true)
{
try{
Thread.sleep(100);
}catch(Exception e){e.printStackTrace();}
index = (index + 1)%10;
repaint();
}
}
}
component.update方法的作用
repaint():updata方法清除组件表面内容,再调用paint
6).Applet的相关知识
Applet程序中的控制台输出:用于显示System.out.println语句的打印结果,当打开具有Applet的小程序的网页时,任务栏托盘区中会有java图标。
Applet程序的限制
①不能启动执行其它应用程序
②不能进行i/o操作
③不能调用本机代码
④不能与Applet所在的主机之外的其它主机进行网络连接
7).<Applet>标记
<applet
[]可选
[archive=archiveList]
code=applet.class指定applet的类名
width=pixels heigth
codebase=applet与html文件的相对路径,或Applet的绝对路径,如果没有设置,表明applet与htm了同一目录下
[alt=替代文本,说明applet的作用]
[name=applet的实例名称]
[align=对齐方式]
[vspace=]
[hspace=]
8).网页中设置间隔时间:
import java.awt.*;
import java.applet.*;
public class JavaApp extends Applet implements Runnable {
int index = 0;
Image []imgs = new Image[10];
int interval =100;
public void init() {
interval=Integer.parseInt(getParameter("interval"));
for(int i = 0;i<10;i++)
{
imgs[i] = getToolkit().getImage(getCodeBase(),"imgs//T"+(i+1)+".gif");
//获得图像对象可以调用Component.getToolkit()方法。由于Applet是Component子类,可以直接使用
}
new Thread(this).start();
}
public void paint(Graphics g) {
g.drawImage(imgs[index],0,0,this);//this指组件自身
/*g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
g.drawString("" + index, 0, 60 );*/
}
public void run(){
while(true)
{
try{
Thread.sleep(interval);
}catch(Exception e){e.printStackTrace();}
index = (index + 1)%10;
repaint();
}
}
}
9).<OBJECT>标记
W3C协会建议人们用<OBJECT>标记来代替<APPLET>标记。
使用HTMLConverter将<APPLET>标记转换成<OBJECT>
ms-dos下,htmlconverter MyApplet.htm
使用<OBJECT>标记执行Applet小程序的java解释器被作为一个ActiveX插件引用。
使用<OBJECT>标记比<APPLET>标记多了自动下载和安装java解释器的功能。
在多个网页中,引用同一个Applet类