首先我们编写一个Java Applet,就叫HelloWorld1好了(大家对HelloWorld一定不会陌生).
HelloWorld1.java
import java.awt.*;
import java.applet.*;
public class HelloWorld1 extends Applet
{
public String text="Hello World!";//请注意此处的public
public void paint(Graphics g)
{g.drawString(text,20,20);}
}
编译通过后会生成HelloWorld1.class(别告诉我程序无法通过!如果编译出错请检查是否拼写有误。)
example.html
<html>
<head><title>例子</title></head>
<body>
<script language="JavaScript">
<!--
function SetText()
{
document.app.text="世界你好!";
document.app.repaint();//也请注意此句.
}
//-->
</script>
Java Script与Java Applet的综合运用例一<br>
<applet code="HelloWorld1.class" width="100" height="28" name="app">
</applet>
<form>
<input type="button" value="请点击这里" onclick="SetText()">
</form>
</body>
</html>
用浏览器打开example.html会出现一个显示“Hello World!”的Java Applet以及一个按钮“请点击这里”。我们点一下按钮,你会发现“Hello World!”变成了“世界你好”。这说明Java Script已经成功的改变了HelloWorld1中text的内容。
你也许会问在在HelloWorld1.java中为什么要在text前加public??
还有Java Script中那行:"document.app.repaint();"是什么意思??
是这样的:
和C++一样,在Java中缺省状态下,对象的属性是private,要让Java Script访问到Java Applet中的对象,必须设置为public(包括函数、变量和类)。
前一句document.app.text="世界你好!"仅改变了text的值,要使它反映在浏览器上,必须要让HelloWorld1刷新它的显示,因此要调用HelloWorld1中的repaint()函数。你也许又要问了:我在HelloWorld1.java中并没有看到repaint()函数呀? HelloWorld1是Applet的子类,我们调用repaint()其实是调用类Applet中的repaint()函数。当然我们并不推荐在外部直接修改Applet内的变量,更安全的方法是提供public函数来读取和改变内部变量。
待续...