第四讲Applet及其应用_第1页
第四讲Applet及其应用_第2页
第四讲Applet及其应用_第3页
第四讲Applet及其应用_第4页
第四讲Applet及其应用_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四讲 Applet基础及其应用* 知新 *nApplet概述概述nApplet的生命周期、相关方法的生命周期、相关方法nHtml标签标签nApplet的应用的应用4.1 Applet概述nJava应用程序:应用程序:n只有一个程序入口只有一个程序入口main方法,通过方法,通过JVM调用执行调用执行n小应用程序:小应用程序:n是嵌入到网页中由浏览器调用执行的,其中不必包含是嵌入到网页中由浏览器调用执行的,其中不必包含main方法。方法。n回忆一下小应用程序的书写格式回忆一下小应用程序的书写格式import java.applet.*; public class MyApplet extend

2、s Appletn每个小应用程序中必须有一个主类,冠以每个小应用程序中必须有一个主类,冠以publicpublic,并且从,并且从AppletApplet类继承。类继承。n小应用程序的运行:小应用程序的运行:n将小应用程序源文件编译成字节码文件将小应用程序源文件编译成字节码文件n编写编写htmlhtml文件,使用文件,使用 标签将字节码文件嵌入其中标签将字节码文件嵌入其中n用浏览器打开用浏览器打开htmlhtml文件或者用文件或者用appletviewerappletviewer小程序浏览器。小程序浏览器。要彻底了解Applet,了解他继承关系是非常必要的。Java.lang.Object |

3、+-Java.awt.Component | +-Java.awt.Container| +-Java.awt.Panel|+- Java.applet.Applet可以看出Applet是一个容器,是一种面板,在其中可以放置组件,可以有布局管理器,其缺省的布局管理器是FlowLayout 。Applet小程序的继承关系小试身手与绘图有关的类:与绘图有关的类:Graphics,浏览器的浏览器的Java运行环境产生一个运行环境产生一个Graphics类的对象,并传递给方法类的对象,并传递给方法paint()中的参数中的参数g。可将它可将它视为一支画笔。视为一支画笔。import java.appl

4、et.Applet;import java.awt.*;public class Test extends Appletpublic void paint(Graphics g)g.drawOval(10,10,100,100);4.2Applet的生命周期、相关方法applet主类主类init()start()paint()stop()destroy()自定义方法自定义方法applet启动后第一个被执行启动后第一个被执行,在此初始化在此初始化init()后或浏览器进入页面时被执行后或浏览器进入页面时被执行, 放放置某一功能的启动代码置某一功能的启动代码start()后被执行后被执行,写与输出

5、有关的代码写与输出有关的代码浏览器离开页面时执行浏览器离开页面时执行,可以省略重写可以省略重写浏览器关闭时执行浏览器关闭时执行,可以省略重写可以省略重写不能自动被执行不能自动被执行,可以由前三个方可以由前三个方法调用法调用.例如例如: start() mymethod()初始态(瞬态)初始态(瞬态)运行态运行态停止态停止态消亡态消亡态离开离开web页面:极小页面:极小化或装入其他页面,化或装入其他页面,调用调用stop()方法方法重新装入或改变页重新装入或改变页面大小或返回面大小或返回Web页面,调用页面,调用start()方法方法关闭浏览器,调关闭浏览器,调用用destroy()方法方法第一

6、次装入,构造第一次装入,构造applet类,调用类,调用init()方法方法调用调用start()方法方法 Applet的生命周期n Applet的生命周期的生命周期import java.applet.Applet;import java.awt.Graphics;public class Exam3_4 extends Applet String str; public void init() str=here is applet; public void paint(Graphics g) g.drawString(str,100,100); 例 public class Simple

7、extends Applet StringBuffer buffer; public void init( ) buffer = new StringBuffer( ); addItem(initializing); public void start() addItem(starting); public void stop() addItem(stopping); public void destroy( ) addItem(preparing for unloading); void addItem(String newWord) System.out.println(newWord);

8、 buffer.append(newWord); repaint(); public void paint(Graphics g) g.drawRect(0, 0, getSize().width-1,getSize().height-1 ); g.drawString(buffer.toString(), 5,15); 4.3Html标签n超文本标记语言(HTML)n和n Html文件开始和结束的标记n和n WWW浏览器窗口标题内容的标记n和nHtml文件在浏览器窗口中显示内容的标记n和n嵌入到Html文件中Applet程序的标记n基本形式:基本形式:nnCode:指出要加载的类名,直接写类

9、名,则要求类与:指出要加载的类名,直接写类名,则要求类与html文件在同文件在同一路径下。一路径下。nHeight、width:指出:指出applet显示区的高和宽显示区的高和宽 /获取参数int width=0,height=0;String para;para=getParameter(gao);if(para!=null)height=Integer.parseInt(para);para=getParameter(kuan);if(para!=null)width=Integer.parseInt(para);Applet程序与程序与HTML文件文件参数传递 属性可以使得Applet能

10、够从页面中获取所需的参数。 方法getParameter()getParameter()获获取属性指定的参数。属性的作用与应用程序中main()方法里参数String args的作用是一样的。 一个好的小应用程序,应该提供用户能够设置外部参数的功能,以使得用户能够根据自己的需要来应用它。 方法getParameterInfogetParameterInfo()可以得到有关属性的说明信息。alternateHTML 如果浏览器不支持Applet,就解释alternateHTML所给出的HTML代码。否则就忽略它。AppletApplet程序与程序与HTMLHTML文件文件参数传递参数传递publ

11、ic class AppletPara extends Applet String s1,s2; public void init() s1 = getParameter(p1); s2 = getParameter(p2); public void paint(Graphics g) g.drawString(s1,10,10); g.drawString(s2,10,30); Applet Parameter Test 参数传递示例参数传递示例1 1nimport java.applet.Applet;nimport java.awt.*;npublic class Exam4_3 ext

12、ends Applet nString str;nint x, y, h;nFont fnt;npublic void init() nstr = getParameter(“string”);nh = Integer.parseInt(getParameter(“size”);nx = Integer.parseInt(getParameter(“x1”);ny = Integer.parseInt(getParameter(“y1”);nfnt = new Font(“TimesRoman”, Font.BOLD, h);nnpublic void paint(Graphics g) ng

13、.setColor(Color.red);ng.setFont(fnt);ng.drawString(str, x, y);nn参数传递示例参数传递示例2 2(java java 程序)程序)nnnnnnnnnn参数传递示例参数传递示例2(html文件)文件)4.4 Applet4.4 Applet应用应用AppletApplet程序中可使用程序中可使用java.awtjava.awt包中的包中的GraphicsGraphics类类提供的各种方法,在提供的各种方法,在AppletApplet程序中输出文本、绘制多程序中输出文本、绘制多种图形和显示图片等。种图形和显示图片等。GraphicsGr

14、aphics类对象代表当前当前类对象代表当前当前组件的绘图环境。组件的绘图环境。1、设置字体和颜色(1)设置字体java.awt.Font类设置文本的字体(包括字型和字号)构造方法public Font(String name, int style int size)编程方法:编程方法:利用Font类创建出一Font类对象并设置字体特性参数;调用Graphics类中的setFont()将用户字体加入到系统中;再调用绘制函数输出文字。public void paint(Graphics g) Font myFont= new Font(“Dialog”, Font.BOLD, 20); g.se

15、tFont(myFont); g.drawString(“这是Java中的Dialog字体的文字串字体的文字串”, 100,100) ;例如:例如:(1)设置字体可用java.awt.Color类设置或获取某一容器组件内的图形、文字的颜色。Color类已包含13个颜色常量 常用构造方法public Color(int r, int g, int b)public Color(float r1, float g1, float b1)(2)设置颜色编程方法:编程方法:利用Color类创建出一Color类对象并设置颜色特性参数(三基色的分量);调用Graphics类中的setColor()将用户的

16、颜色加入到系统中;再调用绘制函数输出图形、文字等。public void paint(Graphics g) Color myColor= new Color(red, green, blue);g.setColor(myColor);g.drawString(“这是Java中的带颜色的文字串文字串, 100,100) ;(2)设置颜色import java.applet.*;import java.awt.*;public class MyApple extends AppletButton b1,b2;int sum;public void init()b1=new Button(确定);

17、b2=new Button(取消);add(b1);add(b2);public void start()sum=0;for (int i = 1; i=100; i+)sum+=i;public void paint(Graphics g)g.setColor(Color.blue);g.drawString(程序设计方法,20,60);g.setColor(Color.red); g.drawString(sum=+sum,20,100);修改上例1、将求和替换为:sum+;2、绘制圆形:fillOval()、drawOval()3、设置颜色:创建颜色new Color(r,g,b)4、设

18、置随机颜色:Math.radom()2、输出文本(1)绘制字符串绘制字符串public void drawString(String s, int x, int y)(2 2)绘制字符)绘制字符public void drawString(char c, int offset, int number int x, int y)(3 3)绘制字节)绘制字节public void drawString(byte b, int offset, int number int x, int y)3、绘制几何图形void drawLine(int x1, int y1, int x2, int y2) )

19、 /画线void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) /画弧void drawOval(int x, int y, int width, int height) /画椭圆void drawRect(int x, int y, int width, int height) /画矩形void drawPolygon(int xPoints, int yPoints, int Points) /画多边形void drawRoundRect( ) /画圆角矩形void fill3DRect

20、( ) /画3D矩形简单绘图(举例)import java.applet.*;import java.awt.*;public class MyApple extends Appletpublic void paint(Graphics g)int r,gr,b,h=300,w=400;int x,y,x1,y1;for (int i = 0; i100; i+)r=(int)(Math.random()*255);gr=(int)(Math.random()*255);b=(int)(Math.random()*255);g.setColor(new Color(r,gr,b);x=(int

21、)(Math.random()*w);y=(int)(Math.random()*h);x1=(int)(Math.random()*10+5);y1=x1;g.fillOval(x,y,x1,y1);4、显示图像(2)(2)加载图像加载图像( (定义获取图像对象定义获取图像对象) ) java.awt java.awt包包java.awt.Imagejava.awt.Image类类 直接调用直接调用:getImage(URL url, String name):getImage(URL url, String name) (1)(1)定义图像对象定义图像对象 java.awt java.aw

22、t包包java.awt.Imagejava.awt.Image类,可以定义图像对象。类,可以定义图像对象。 如:如:Image pic1,pic2;Image pic1,pic2; url:给出图片文件基本位置的绝对URL路径, name:图片文件名称,它相对于url参数的图片位置。 例如: Image myImage ; myImage = getImage(getDocumentBase(), “edonkey.jpg”); (3)(3)显示图像的操作显示图像的操作 drawImage(Image img,int x,int y,ImageObserver drawImage(Image

23、img,int x,int y,ImageObserver observer)observer)如:如:drawImage(myImage,10,20,this);drawImage(myImage,10,20,this); 4、显示图像import java.applet.Applet;import java.awt.*;public class Exam4_13 extends Applet public void paint(Graphics g) Image pic;pic = getImage(getDocumentBase(), 001.jpg);int x0 = 10, y0 =

24、 30;int w = pic.getWidth(this);int h = pic.getHeight(this);g.drawImage(pic, x0, y0, w/8, h/8, this);g.drawImage(pic, x0+150, y0, w/12, h/12, this);g.drawImage(pic, x0+150, y0+100, w/15, h/15, this);g.drawImage(pic, x0+250, y0+30, (int)(w*0.1), (int)(h*0.2), this);例:5、动画在图片演示的程序中,连续使用如下4中方法:p创建Image类

25、的对象数组p使用drawImage()方法绘图p使用Thread.sleep()方法休眠当前线程p使用repaint()方法重绘绘图区import java.applet.Applet;import java.awt.*;public class Exam4_14 extends AppletImage m_Images; int sum=5; int cur=0; String strImage; public void init() m_Images=new Imagesum; for (int i =0; i sum; i+) strImage = images/00 + (i+1) +.jpg;m_Imagesi = getImage(getDocumentBase(), strImage); public void paint(Graphics g) g.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论