package 本不是javascript中用的,而是用在Java中调用JavaScript 要在Java程序中调用JavaScript方法,用户必须在Java程序代码中输入下列package:netscape.javascript.* 在上面的package中有在JSObject类中定义的一个静态方法getWindow( ),该方法允许用户在Java程序中调用JavaScript方法。调用JavaScript函数的语法是:JSObject.getWindow(applet instance).call("function name", parameters) 在这种情况下,如果用户要将接受到的onDigitizeCircle事件发送到调用onDigitizeCircleHandler的JavaScript函数,必须在调用上述方法前先将所有参数放到java.lang.Object阵列中。因为第四个参数不是来自java.lang.Object类的对象,需要将其转换为java.lang.Double对象: public void onDigitizedCircle(MGMap maps, String units, MGPoint center, double radius)
{
Object[] params = new Object[4];
params[0] = maps;
params[1] = units;
params[2] = center;
params[3] = new Double(radius);
JSObject.getWindow(this).call("onDigitizeCircleHandler", params);
} 最后,由于安全的原因,任何Java程序或调用JavaScript的插件程序在插入到HTML文本时必须使用MAYSCRIPT标记。否则浏览器不允许装入对象。修改后的嵌入Java程序的语句如下: <APPLET code="myapplet" NAME="obs" WIDTH=400 HEIGHT=300 MAYSCRIPT>
</APPLET>
{
Object[] params = new Object[4];
params[0] = maps;
params[1] = units;
params[2] = center;
params[3] = new Double(radius);
JSObject.getWindow(this).call("onDigitizeCircleHandler", params);
} 最后,由于安全的原因,任何Java程序或调用JavaScript的插件程序在插入到HTML文本时必须使用MAYSCRIPT标记。否则浏览器不允许装入对象。修改后的嵌入Java程序的语句如下: <APPLET code="myapplet" NAME="obs" WIDTH=400 HEIGHT=300 MAYSCRIPT>
</APPLET>
不过请看一下下面的文章:
http://www.java-cn.com/technology/technology_detail.jsp?id=62
还请发表高见
不过如果在javascript 中用java,一般不好,因为浏览器并不能直接执行java 文件(不能导入java.awt.*;等)
谢谢你!
共同进步!