JavaApplet工作原理Applet类小应用程序的书写格式importjava.applet.Applet;publicclassAppletDemoextendsApplet{……}applet都继承自java.applet.Applet类,由Sun公司事先定义好了。小应用程序是在浏览器中运行的,每个小应用都有一个主程序类,之前必须加上public。Applet类的层次结构java.lang.Objectjava.awt.Component.Container.Panel.AppletApplet生命周期Applet方法Applet类的主要方法有:Init():applet启动后第一个被执行,在此初始化Start():init()后被执行,程序主要代码写在此Paint():start()后被执行,写与输出有关的代码Stop():浏览器变换页面时执行,可以省略重写Destroy():浏览器关闭时执行,可以省略重写Init():该方法用于Applet的初始化。当Applet被第一次加载时,该方法会被自动调用。在这个方法中,可以做一些必要的初始化工作,这些内容包括是创建和初始化程序运行所需要的对象实例,把图形或字体载入内存,处理PARAM参数等。Start():该方法用来启动浏览器运行Applet的主线程。调用init方法将Applet的初始化工作完成之后,start方法会被自动调用;当用户刷新包含Applet的页面或者从其它页面返回包含Applet的页面时,start方法也会被自动调用。也就是说,start方法可以被多次调用,这与init方法是有区别的。基于这样的原因,可以把只调用一次的代码放在init方法中,而不能放在start方法中。该方法是Applet的主体,在其中可以执行一些任务或者启动相关的线程来执行任务,例如开始动画或播放声音等。Stop():在用户离开Applet所在页面或浏览器变成图标时,调用stop()方法。因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作,以免影响系统的运行速度,且并不需要人为地去调用该方法。如果你的Applet中不包含动画、声音等程序,通常也不必重写该方法。Destory():当用户正常关闭浏览器时,浏览器会调用destroy方法。该方法用于回收系统资源,如回收图形用户界面的系统资源、关闭连接等。至于Applet实例本身,会由浏览器来负责从内存中清除,不需要在destroy方法中来清除。显示Applet界面的paint()方法主要作用是在Applet的界面中显示文字、图形和其他界面元素。它也是浏览器可自动调用的Applet类的方法。导致浏览器调用paint()方法的事件主要有如下三种:Applet被启动之后,将自动调用来描绘界面。浏览器窗口改变时,会调用来完成。Applet的其他相关方法被调用时,系统也会相应的调用该方法,如repaint()方法被调用时,系统先调用update()方法将Applet实例所占的空间清空,然后用paint()方法重画之。Applet与HTML文件的配合Applet标签属性CODEBASE=代码基址CodeHeight:WidthAlt=“Thisis….”出错提示Align=CENTERApplet界面在浏览器窗口中的对齐方式Paramname=value=html中有关的代码APPLETCODE=“showdate.class”width=600height=80/APPLETCODEBASE的作用当class文件与HTML文件不在同一个目录下时,使用CODEBASE说明APPLETCODE=“showdate.class”width=600height=80CODEBASE=“\myjava\class”/APPLETApplet与HTML参数传递向applet传递参数的两个步骤1.在HTML页中要有PARAM标签2.在applet中要有getParameter方法Applet与Application一样可从外界获取参数。这是通过HTML的PARAM标记来实现的,PARAM单元的属性包括name和value两个,其中name给出参数名,value给出参数值,它的语法如下:PARAMname=paraNamevalue=paraValue注意:浏览器在传递属性值时,name的值与大小写无关,而对value的值则会区分大小写。JavaApplication命令行参数举例Applet与Applicatioin的区别运行环境Applet--浏览器Application--行命令入口方式Applet--多消息,多入口Application--唯一入口main()执行程序来源Applet--实际使用时来自于网络Application--本地程序Applet与Applicatioin的区别安全性方面Applet在安全性方面的限制:Applet不能访问本地文件,如读、写Applet不能调用本地的应用程序和运行时的动态连接库Applet不能做网络连接,除非它连接的对象是下列两个站点之一下载包含本Applet的HTML站点下载本Applet字节码文件的站点图形用户界面用于生成图形用户界面(graphicsuserinterface)的类库是java.awt包,awt是abstractwindowtoolkit的缩写。抽象窗口便于开发人员所设计的界面独立于具体的界面实现。Applet的GUI编程可以作为一个AWT容器来对Applet进行编程。可放置简单构件(Label、Button等)以及其他非顶层容器(Panel);可绘制用户自定义成分(绘制图形、文字、显示图象)事件处理用户自定义部分用户自定义部分一般起到装饰美化用户界面的作用,如一些几何图形,标记等。它们对用户的操作一般不作响应。图形处理使用java.awt包中的一个类Graphics,其中包括了很多绘制图形和文字的方法。Graphics类的对象不是由new产生的,而是由系统或其他方式直接将生好的Graphics对象当作方法的参数,再交给程序设计者去处理。例如:paint(Graphicsg)Graphics的方法paint(Graphicsg){g.clearRect();g.copyArea();g.drawArc();g.drawLine();g.drawOval();g.drawRect();g.drawPolygon();g.fillArc();g.fillOval();g.fillPolygon();g.fillRect();g.getColor();g.getFont()g.setFont();g.setColor();g.fillRoundRect()}利用Graphics类提供的一些方法进行简单图形的绘制。如:drawLine用来画线,调用格式:voiddrawLine(intx1,inty1,intx2,inty2)(x1,y1)和(x2,y2)为线的两个端点。drawPolygon用来绘制多边形,调用格式:voiddrawPolygon(Polygonp)参数是多边形对象Polygon,先定义Polygon对象,然后将点加入到该对象中,然后利用drawPolygon进行多边形的绘制:Polygonp=newPolygon;p.addPoint(x1,y1);p.addPoint(x2,y2);...g.drawPolygon(p);矩形绘制方法:voiddrawRect(intx,inty,intwidth,intheight)圆角矩形绘制方法:voiddrawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)椭圆绘制方法:voiddrawOval(intx,inty,intwidth,intheight)Java还提供了方便的填充封闭图形的方法,只需要将前面介绍的方法中的draw改为fill即可。如:voidfillRect(intx,inty,intwidth,intheight)voidfillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)voidfillOval(intx,inty,intwidth,intheight)文字输出字体、字型和字号设置方法Font(Stringname,intstyle,intsize)字型名称name有Courier、Helvetica、TimesNewRoman或宋、楷体等。字体风格style指字的外观,有3种字体风格静态变量:Font.PLAIN(正常字体)、Font.BOLD(黑体)、Font.ITALIC(斜体)。字体大小size是以点来衡量的,一个点(point)是1/72英寸。例:Fontfont=newFont(“宋体”,Font.ITALIC,24);g.setFont(font);在小应用程序中显示输出的方法g.drawString(String,intx,inty);g.drawChars(chardata[],intoffset,intnumber,intx,inty);g.drawBytes(bytedata[],intoffset,intnumber,intx,inty);坐标点(x,y)与要绘制的字符串string、字符数组chars[]和字节数组bytes[]的左上角坐标对应。参数offset是数组的起始下标,参数number是要绘制的元素个数。例:g.drawString(“Thisisatest”,5,10);获取字体的属性Fontfont=g.getFont();Font类中常用的方法GetFamily()getName()getSize()getStyle()isItalic()isPlain()isBold()toString()颜色的调整Color类的三种构造函数:PublicColor(intRed,intGreen,intBlue);指定三原色的整数值,每个参数取值范围在0至255之间。PublicColor(floatRed,floatGreen,floatBlue);指定三原色的浮点值,每个参数取值范围在0.0至1.0之间。PublicColor(intRGB);指定一个整数代表三原色的混合值,16~23比特位代表红色,8~15比特位代表绿色,0~7比特位代表蓝色。Color对象的使用创造自己的颜色:Colormycolor=newColor(intred,intblue,intgreen);g.setColor(Color.yellow)g.setColor(mycolor);例:随机产生颜色,并画圆URL类URL是统一资源定位符(UniformResourceLocator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图象文件、声音文件、动画文件以及其他任何内容。通过URL,就可以访问Internet。浏览器或其他程序通过解析给定的URL就可以在网络上查找相应的文件或其他资源。构造URL类(全名java.net.URL)绝对URL的构造方法:URL(Stringspec)例:URLurl=newURL(”)相对URL的构造方法:某绝对地址:=newURL(“”);URLurl1=new(base,“mywork.html”);URLurl2=new(base,“myw