分享
 
 
 

Java入门笔记2_Applet

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

3. Applet

3.1 Hello World Applet

接下来使用Applet实现Hello World,借此先了解最简单的Applet程序及使用方法。

1: import java.awt.Graphics;

3: public class HelloWorldApplet extends java.applet.Applet {

4:

5: public void paint(Graphics g) {

6: g.drawString("Hello world!", 5, 25);

7: }

8:}

Applet说明:

(1) 首先Applet一般是从java.applet.Applet中继承过来的;

(2) paint()方法必须是public,不然不能被其它程序正确调用;

(3) 由于paint方法使用了Graphics类,所以Applet需要引用java.awt.

(4) Graphics,当然如果其它的类如果也可以实现Graphics类的功能,也可以引用之;

(5) 在Applet中没有public static void main这个方法,所以它不能独立执行,必须由专门的程序(如游览器)调用执行,Applet程序被调用后,会自动执行paint方法。

这样一个Applet就完成了,以HelloWorldApplet.java文件名保存,使用正常的编译命令编译之,即javac HelloWorldApplet.java,编译完后会生成.class文件,接下来就是在网页中引入之个Applet小程序,这里我们在HTML中引入该Applet小程序:

<html>

<body>

<APPLET code="HelloWorldApplet.class" width=150 height=25></APPLET>

</body>

</html>

(6) 这是一个简单的Applet引用方法,在Html中使用标签APPLET来引用Applet,code属性指定Applet的程序名,在这个例子中引入的Applet与html文件在同一个目录下,所以没加路径说明,如果不是可以使用codebase指定applet所在的路径,路径表示方法与html中的一样;

(7) 其它属性width及时性height是HTML的标准属性

(8) 但是该HTML在游览器中执行时,并不一定能执行Applet小程序。具体原因我还没找到,我使用的操作系统是XP,浏览器是IE6.0,并且已安装了java虚拟机,已经测试过可以正常游览有applet的网站。如果有人知道请不访告诉我(email: 8280338@tzenet.com),大家共同进步。

还有另一个方法可以测试Applet,就是使用appletViewer命令,如果上述的Html文件名为hello.htm,那么可以使用:

appletViewer hello.htm

查看html文件中引入的applet小程序,该命令会忽略html代码,直接执行applet代码。

3.2 Applet参数使用方法

在Applet中可以使用<param>标签向Applet传递参数,如:

<applet ….>

<param NAME=font VALUE="TimesRoman">

……

</applet>

当applet执行时,这些参数就会被传入,可以在init方法中使用getParameter()方法获取这些传入参数的值,如getParameter("font"),该方法返回值始终是String类型的,所以必要的时候还需进行相应的类型转换。如果没有相应的传入参数,那么getParameter()方法会返回null值。

3.3 Applet基本方法

从java.applet.Applet继承过来的applet会有五个基本的方法:

(1) init()方法:当applet被加载时,会首先执行init方法,该方法相当于java application中的main,该方法只能被执行一次;

(2) start()方法:init方法执行完毕会就会自动执行start方法,start方法可以被反复执行,如一个applet被stop后,可以使用start方法重新开动它;

(3) stop()方法:停止执行applet,与start方法相对应

(4) destroy()方法:与init方法相对应;

(5) paint()方法:输出指定内容,paint方法会被反复的调用,在applet初始化时、窗口移动时等;

(6) repaint()方法:该方法调用update方法;

(7) update()方法:该方法清空屏幕的内容后,再调用paint方法重画;paint,repaint及update方法是实现Applet中动画的三个主要函数,一般在update方法中调用g.clipRect方法规则paint的区域,这样paint方法只更新指定区域的内容;

(8) 以上这些方法在必须的时候可以重载,并且不需要在我们的applet中显示的调用,可以自动执行(当然也可以显示调用);

3.4 Applet中的线程

在Applet中如果需要用到动画或者后台数据处理等需要占用大量资源的功能时,最好使用线程。以下是Applet中使用线程的简单例子:

import java.awt.Graphics;

import java.util.Date;

public class DigitalClock extends java.applet.Applet

implements Runnable {

Date theDate; Thread runner;

public void start() {

if (runner == null) {

runner = new Thread(this);

runner.start();

} }

public void stop() {

if (runner != null) {

runner.stop();

runner = null;

} }

public void run() {

while (true) {

theDate = new Date();

repaint();

try { Thread.sleep(1000); }

catch (InterruptedException e) { }

} }

public void paint(Graphics g) {

g.drawString(theDate.toString(),10,50);

}}

说明:

(1) 要在applet支持线程,一般需要实现Runnable接口,所以在本例类的声明中加了implements Runnable;

(2) 在Runable接口中定义了run()方法,当线程start时,会调用这个方法;所以需要实现该方法;

(3) 要使用线程当然需要实例化类Thread(Thread是属于java.lang包):Thread runner = new Thread(this),这里的初始化参数this指定的applet对象;

(4) 接下来在applet的start方法中调用runner.start()方法开始创建线程,线程创建完后,运行run方法;

(5) 在run方法中实现真正要实现的内容,本例修改了theDate的值后,调用repaint方法,该方法的调用触发了paint方法的执行;

(6) 在stop方法中结束线程的运行。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有