Java Script与Java Applet的综合运用.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:3 大小:33KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java Script与Java Applet的综合运用.doc

JavaScript与JavaApplet的综合运用.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JavaScript与JavaApplet的综合运用首先我们编写一个JavaApplet,就叫HelloWorld1好了(大家对HelloWorld一定不会陌生)。importjava.awt.*;importjava.applet.*;publicclassHelloWorld1extendsApplet{publicStringtext="HelloWorld!";//请注意此处的publicpublicvoidpaint(Graphicsg){g.drawString(text,20,20);}}编译通过后会生成HelloWorld1.class(别告诉我程序无法通过!如果编译出错请检查是否拼写有误。)<html><head><title>例子</title></head><body><scriptlanguage="JavaScript"><!—functionSetText(){document.app.text="世界你好!";document.app.repaint();//也请注意此句.}//--></script>JavaScript与JavaApplet的综合运用例一<br><appletcode="HelloWorld1.class"width="100"height="28"name="app"></applet><form><inputtype="button"value="请点击这里"onclick="SetText()"></form></body></html>用浏览器打开example.html会出现一个显示“HelloWorld!”的JavaApplet以及一个按钮“请点击这里”。我们点一下按钮,你会发现“HelloWorld!”变成了“世界你好”。这说明JavaScript已经成功的改变了HelloWorld1中text的内容。你也许会问在在HelloWorld1.java中为什么要在text前加public?还有JavaScript中那行:"document.app.repaint();"是什么意思??是这样的:和C++一样,在Java中缺省状态下,对象的属性是private,要让JavaScript访问到JavaApplet中的对象,必须设置为public(包括函数、变量和类)。前一句document.app.text="世界你好!"仅改变了text的值,要使它反映在浏览器上,必须要让HelloWorld1刷新它的显示,因此要调用HelloWorld1中的repaint()函数。你也许又要问了:我在HelloWorld1.java中并没有看到repaint()函数呀?HelloWorld1是Applet的子类,我们调用repaint()其实是调用类Applet中的repaint()函数。当然我们并不推荐在外部直接修改Applet内的变量,更安全的方法是提供public函数来读取和改变内部变量。上次我们介绍了使用JavaScript改变JavaApplet中的变量的方法(严格来讲应该是改变了String类,不过可以简单的把String类看成是变量);我们说直接在JavaScript中改变JavaApplet中的变量是不可取的(至少是不推荐的)。因为JavaApplet本身并不知道变量被改变,这会给Applet程序带来隐患(还记得我们不得不调用repaint()函数来刷新显示吗?)。更为积极的做法是在JavaApplet中提供public函数支持对内部对象的存取。下面我们对HelloWorld1.java和example.html进行改进,介绍如何在JavaScript中调用JavaApplet的函数:考虑到浏览器对同名的JavaApplet往往使用cache,因此我们把程序命名为HelloWorld2.javaimportjava.awt.*;importjava.applet.*;publicclassHelloWorld2extendsApplet//主类名必须与文件名相同{Stringtext="HelloWorld!";//去掉text的public属性publicvoidpaint(Graphicsg){g.drawString(text,20,20);}//这里增加一个public函数publicvoidSetString(StringNewString){text=NewString;repaint();//自动调用repaint()函数}}编译后生成HelloWorld2.class;<html><head><title>例子</title></head><body>