上次我们介绍了使用java script改变java applet中的变量的方法(严格来讲应该是改变了string类,不过可以简单的把string类看成是变量); 我们说直接在java script中改变java applet中的变量是不可取的(至少是不推荐的)。 因为java applet本身并不知道变量被改变, 这会给applet程序带来隐患(还记得我们不得不调用repaint()函数来刷新显示吗?)。 更为积极的做法是在java applet中提供public函数支持对内部对象的存取。下面我们对helloworld1.java和example.html进行改进,介绍如何在java script中调用java applet的函数:
考虑到浏览器对同名的java applet往往使用cache,因此我们把程序命名为helloworld2.java
import java.awt.*;
import java.applet.*;
public class helloworld2 extends applet//主类名必须与文件名相同
{
string text="hello world!";//去掉text的public属性
public void paint(graphics g)
{g.drawstring(text,20,20);}
//这里增加一个public函数
public void setstring(string newstring)
{
text=newstring;
repaint();//自动调用repaint()函数
}
}
编译后生成helloworld2.class;
java script与java applet的综合运用例二
同样打开example2.html点击按钮后你会发现"hello world!"变成了"世界你好!",说明调用函数成功?
闽公网安备 35060202000074号