第08章 Applet应用程序

合集下载

APPLET程序

APPLET程序

图 2.2 Java Applet的下载执行过程
从这个过程中可以看出,Java Applet的字节码程序最早 是保存在 Web 服务器上的,而它的运行过程则是在下载到 本地后在本地机上完成的,这实际上就是网络应用程序的 发布过程。 当 Applet 程序需要修改或维护时只要改动服务器一处的 程序即可。 当然,这样做的前提条件是Applet的字节码程序可以在网 络上的任何一台机器上顺利地运行,而这种跨平台的要求, 根据前面的介绍,已由Java的解释器机制加以保证和实现 。
当浏览器执行 Applet 程序时,会自动产生两个实例(两个对 象),一个是系统类 Applet 的子类的实例,另一个是系统类 Graphics的实例。前者调用Applet的子类的实例中paint方法, 后者作为实际参数赋值给paint方法中的形式参数g。
g 是系统类 Graphics 的一个对象,它代表了 Web 页面上 Applet程序的界面区域的背景,调用g的方法来显示字符串, 就是在当前Applet程序的界面区域的背景上显示字符串。 虽然Java Application和Java Applet在运行方式上有很大 的不同,但是它们遵循相同的 Java 语言的语法规则,所以 编译时也使用完全相同的编译工具。 例如: javac MyJavaApplet.java 编译的结果在当前目录下将生成一个以源代码中的类名 MyJavaApplet命名的字节码文件MyJavaApplet.class。
(4)当用户编写的 Applet程序编译通过后,就可以使WWW 浏览器在解释执行 HTML文件时,调用该 Applet 程序。通过 自动执行用户改写过的成员方法,例如paint方法,来实现用 户程序预期的功能。
系 统 类 Applet 中 已 经 定 义 好 的 成 员 方 法 还 有 , init();start();stop();destroy(); 它们与 paint 方法使用的方式类 似。 paint 方法与其他的一些 Applet 中的方法一样,能够被 WWW浏览器识别和在恰当的时刻自动调用。

Applet小应用程序

Applet小应用程序
13
11.1.3 Applet示例2-1 Applet示例 示例2
import java.awt.Graphics; import java.applet.Applet; public class JavaApplet extends Applet { String print_text; 覆盖了Applet类的 类的init( ) 覆盖了 类的 方法. 方法.该方法主要用于 初始化Applet中的变量. 中的变量. 初始化 中的变量 public void init() { print_text = "Java Applet Java Applet"; 覆盖了Applet 覆盖了 } 类的paint( )方 类的 方 法. public void paint(Graphics g){ 用于在屏幕上 g.drawString(print_text, 20, 20); 给定的位置绘 制字符串 } }
2
3
<HTML> <APPLET code="文件名 文件名.class" 文件名 width= = height=> = </APPLET> </HTML> 其中width,height的值为显示 的值为显示Applet程序的 其中 , 的值为显示 程序的 尺寸大小. 尺寸大小.
1.2.1 Java应用程序举例2-1 Java应用程序举例 应用程序举例2
14
11.1.3 Applet示例2-2 Applet示例 示例2
Applet源文件首先用 Java 编译器编译: 源文件首先用 编译器编译:
javac Firstapplet.java
创建一个用于显示 Applet 的 HTML 文 件:

java8章

java8章

第8章 Applet小应用程序本章主要介绍Applet小程序及Applet类。

8.1 Applet小程序简介是嵌入在HTML语言编写的Web文件中的非独立程序,由Web浏览器(如IE等)内置的Java解释器来解释运行。

1. Applet小程序的运行环境二选一:(1)由Web浏览器(如IE等)内置的Java解释器来解释运行。

(2)由小程序察看器appletviewer解释执行。

2. Applet小程序的特点//源程序名:HelloWorld.javaimport java.awt.Graphics;// 引入Graphics类import java.applet.Applet;//引入Applet类public class HelloWorld extends Applet{ public void paint(Graphics g)//能被浏览器自动调用{ g.drawString("Hello World! ",10,20);}}//end of class(1)Applet小程序必须有一个public类是Applet类的子类。

(2)引入需要的类和包。

(3)小程序的主类必须至少重写init()、start()和paint()中的一个方法。

(4)必须将其主类的字节码文件(HelloWorld.class)嵌入到Web 文件(HelloWorld.html)中。

(5)只能工作在图形界面方式下。

3. html文件以上为例,字节码文件(HelloWorld.class)可嵌入到HelloWorld.html中,文件内容如下:<HTML><head><TITLE>HelloApplet 2003/9/5</TITLE></head><BODY><APPLET CODE="HelloWorld.class" HEIGHT=200 WIDTH=300> </APPLET></BODY></HTML>说明1点:Applet小程序可以调用Applet类的方法:String getParameter(String name)从html文件中获取一个参数。

讲义8

讲义8

public class appletName extends Applet{
public void init init(){//初始化、设置字体、装载图片等
}
} public void start(){//启动和恢复执行 } public void stop(){//执行被挂起 } public void destroy(){//执行关闭活动 } g){//进行绘图操作等 public void paint( Graphics g) }


Graphics中提供的图形绘制方法有: paint( ) //进行绘图的具体操作,必须有程序员重写 update( ) //用于更新图形,先清除背景、前景,再 调用paint() repaint( ) /*用于重绘图形,在组件外形发生变化, 即大小改变或位置移动时,repaint( )方法立即被系统自动 调用,而实际上repaint()方法是自动调用update()方法*/ 下面的方法支持基本的绘图和画图像: void drawLine( ) void drawArc( ) void drawPolygon( ) void drawRect( ) void drawRoundRect( ) void fill3DRect( ) void fillOval( ) java.awt.Graphics类 输出文字: void drawBytes( ) void drawChars( ) void drawString( )
HTML参数传递:
为了使Applet程序更具灵活性,需要在小程序中设置一些未知参 数,以接受来自Web页面的信息。即在HTML中需要传递参数给 Applet程序。在HTML中传递Applet程序使用的参数,可以使用 <APPLET>标记的属性<PARAM>来实现,Applet程序中使用

精品课件-Java语言程序设计案例教程(任泰明-第8章

精品课件-Java语言程序设计案例教程(任泰明-第8章
8.1.2 Applet程序的结构与生命周期 1. Applet程序的结构 由于Applet程序是嵌入网页中被执行的特殊Java程序,
因此Applet程序的结构与Application程序的结构有较大的 不同。根据人们浏览网页的特点,Java语言的设计者已经为 Applet程序设计好了程序结构,并将其放到了一个名叫 “Applet”的类中,Applet类在“java.applet”包中。
第8章 Apple程序
8.1.4 【相关知识】 Applet程序与Application 程序的比较
Applet程序与Application程序的比较如表8-1所示。
第8章 Apple程序
表8-1 Applet程序与Application程序的比较
Applet 程序 Applet 是通过扩展 java.applet.Applet 类创建的
appletviewer 文件名.html 其实,要快速调试Applet程序还有一种方法,就是将上 述HTML文件以注释的形式加到Applet源程序的开始处。
第8章 Apple程序
其格式如下: //<HTML> //<APPLET CODE="HelloApplet.class" WIDTH=200 HEIGHT=100> //</APPLET> //</HTML> import java.awt. Graphics; //引入图形类Graphics …
第8章 Apple程序
3) paint方法 在start()方法执行后,就会自动执行paint方法;或者 在将覆盖Applet程序窗口的其他窗口移开时(即窗口需要重 绘),paint方法也会被自动调用。在Applet程序中要显示一 些信息或进行图形绘制时,这些操作通常放在paint方法中。

8包和applet

8包和applet

格式:
void repaint
//重绘整个窗口。
void repaint(int left, int top, int width, int height)
//重绘指定区域。参数left和top指定左上角坐标,width和 height指定区域的宽度和高度。
update()方法
先用默认的背景填充applet程序窗口,再调用paint 方法,
包和Applet
8.1 包
例8-1:源文件名TestMan.java,包创建引用的例子。 package mypackage; public class Man{ String name; int age; public Man(String n,int a){ name=n; age=a; } public void show(){ if (age<18) System.out.println(name+"的年龄是 "+age); }}
在package语句中,用“.”来指明包(目录)的层次。
例如:package java.awt.image 表明这个包存储在java\awt\image目录中。
8.1 包
包和Applet
在JDK环境下创建一个包,编译Java程序命令为 javac –d <包的父目录> <源文件名>
在当前目录下生成包
包和Applet
8.4 将参数传递到applet
可以通过 HTML 文件中的 <param> 标记将参数传递 给 Applet。
参数值使用返回字符串的 getParameter( ) 方法在 Applet 中检索。
包和Applet
8.4 将参数传递到applet

Java实验八-Applet类及应用源码及截图

Java实验八-Applet类及应用源码及截图

//实验八第一题源程序import java.applet.Applet;import java.awt.*;public class CC extends Applet{private int init = 0;private int start = 0;private int destroy = 0;private int paint = 0;public void init(){init++;}public void start(){start++;}public void destroy(){destroy++;}public void paint(Graphics g){paint++;int x0=20,y0=150;g.drawLine(x0,y0,x0+200,y0);g.drawLine(x0,y0,x0,50);g.drawString("init()",40,165);g.drawString("start()",90,165);g.drawString("destroy()",130,165);g.drawString("paint()",190,165);g.setColor(Color.red);g.fillRect(25,150-init,40,init);g.setColor(Color.blue);g.fillRect(75,150-start,40,start);g.setColor(Color.yellow);g.fillRect(125,150-destroy,40,destroy);g.setColor(Color.green);g.fillRect(175,150-paint,40,paint);}}//第一题html文件<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE> Te8_1 </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><APPLET CODE="Te8_1" WIDTH="300" HEIGHT="300"></APPLET></BODY></HTML>//第二题源程序import java.applet.Applet;import java.applet.*;import java.awt.*;public class Te8_2 extends Applet{String str;int x,y,h,r,g,b;Font fnt;Color Col;public void init(){str=getParameter("string");h=Integer.parseInt(getParameter("size"));x=Integer.parseInt(getParameter("x1"));y=Integer.parseInt(getParameter("y1"));fnt=new Font("楷体_gb2312",Font.BOLD,h);r=Integer.parseInt(getParameter("r"));g=Integer.parseInt(getParameter("g"));b=Integer.parseInt(getParameter("b"));Col=new Color(r,g,b);}public void paint(Graphics g){g.setColor(Col);g.setFont(fnt);g.drawString(str,x,y);}}//第二题html文件<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>Te8_2</TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><APPLET code="Te8_2" width=300 height=200><PARAM name=string value="nihao"><PARAM name=r value="0"><PARAM name=g value="0"><PARAM name=b value="255"><PARAM name=size value="30"><PARAM name=x1 value="100"><PARAM name=y1 value="100"></APPLET></BODY></HTML>//第三题源程序import java.applet.Applet;import java.awt.*;public class Te8_3 extends Applet{public void paint(Graphics g){int w=15,h=15;int x0 =10, y0=20;g.setColor(Color.blue);g.fillRect(0, 0,1000,1000);//用指定宽度和高度画实心矩形g.setColor(Color.pink);g.fillRect(x0+50, y0+50, 150, 100);for(int i=0;i<30;i=i+2){g.setColor(Color.red);g.fillOval(x0+50+i*3,y0+50,w,h);try{Thread.sleep(500);}catch (InterruptedException e){}g.setColor(Color.pink);g.drawOval(x0+50+i*3,y0+50,w,h);g.fillOval(x0+50+i*3,y0+50,w,h);}for(int i=30;i>1;i=i-2){g.setColor(Color.red);g.fillOval(x0+50+i*3,y0+50,w,h);try{Thread.sleep(500);}catch (InterruptedException e){}g.setColor(Color.pink);g.drawOval(x0+50+i*3,y0+50,w,h);g.fillOval(x0+50+i*3,y0+50,w,h);}repaint();}}//第三题html文件<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE> Te8_3 </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><APPLET CODE="Te8_3" WIDTH="300" HEIGHT="300"></APPLET></BODY></HTML>//第四题源程序import java.applet.Applet;import java.awt.*;public class Te8_4 extends Applet{Image[] Im;int totalno=5;int currentno=0;public void init(){Im=new Image[totalno];for(int i=0;i<totalno;i++)Im[i]=getImage(getDocumentBase(),"z00"+(i+1)+".jpg");}public void paint(Graphics g){g.drawImage(Im[currentno],20,20,250,250,this);currentno=++currentno%totalno;try{Thread.sleep(800);}catch (InterruptedException e){}repaint();}}//第四题html文件<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE> Te8_4 </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><APPLET CODE="Te8_4" WIDTH="300" HEIGHT="300"></APPLET></BODY></HTML>。

8.Applet

8.Applet

5. destroy()方法 当用户退出浏览器时,浏览器中运行的 Applet 实例也相应被消灭, 即从内存删除。在消灭 Applet 之前,浏览器会自动调用 Applet 实例的 destroy()方法来完成一些释放资源、关闭连接之类的操作。 例如, 终止所有当前 Applet 实例所建立并启动的子线程等。 由 于 Applet实例本身是由浏览器创建的,最后也由浏览器来删除。 2009.03 By QHNU TMH
2009.03 By QHNU TMH
JAVA程序设计
start()方法除了在 init()初始化之后被调用,在 Applet 被重新启动时也会被系统自动调用。一般有两种情况 造成 Applet 重启动:一是用户使用了浏览器的 Reload 操作;二是用户将浏览器转向了其他的 HTML 页面后又返回。总之,当包含 Applet 的 HTML 页面 被重新加载时,其中的 Applet 实例就会被重新启动并 调用 start()方法,但是 init()方法只被调用一次。
JAVA程序设计
使用Applet主要方法举例
//*********** AppletFunction.java********** // Java Applet的主要方法 import java.applet.*; import java.awt.*; public class AppletFunction extends Applet { //定义 5 个成员变量测试5 个方法的调用情况 private int initTest; private int startTest; private int stopTest; private int destroyTest; private int paintTest; 2009.03 By QHNU TMH
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档