IE+Cortona+JDK(1.3.1,1.6.0_05)+VRML97.jar 无法使用Java脚本,为什么?

本文描述了在一个VRML场景中集成Java脚本(JSAI)的过程及遇到的问题。作者详细记录了配置环境、编写脚本的具体步骤,但Java脚本仍无法正常运行。该文寻求解决Java脚本在VRML中无法执行的问题。

在自己的机子中做了如下的设置,但在加载VRML文件后,仍然无法运行Java脚本,使用的是JSAI接口。哪位高手知道解决办法,请不吝赐教,在此谢谢了!

机子设置
1.      安装了Cortona VRML客户端插件,IE能够解析VRML文件。
2.      安装了JDK(1.3.1版本)JDK(1.6.0_05版本),设置了VRML97.jar包,可以编写和编译JSAI脚本。
3.      设置的JDK环境变量如下:
(1) JAVA_HOME = C:/Program Files/Java/jdk1.3.1_16
(2) CLASSPATH =
.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/vrml97.jar
    (3) PATH = %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
4.      IE->选项->高级中的设置如下图:
            
 
代码
VRML文件如下:
#VRML V2.0 utf8
Shape
{
       geometry DEF text Text
       {
              string "Hello!"
       }
}
DEF Controller Script
{
       field SFNode text USE text
       url "JSAITextChanged.class"
}
脚本JSAITextChanged.class源码如下:
import java.awt.*;
import java.awt.event.*;
import vrml.*;
import vrml.field.*;
import vrml.node.*;
 
 
publicclass JSAITextChanged extends Script {
 
       private MFString textNode = null;
       publicvoid initialize()
       {
              Node node = (Node)((SFNode)getField("text")).getValue();
              textNode = (MFString)(node.getExposedField("string"));
              PopupWindow p = new PopupWindow();
              //p.pack();
              p.setVisible(true);
       }
      
       privatevoid setText(String s)
       {
              String[] str = new String[1];
              str[0] = s;
              textNode.setValue(str);
             
       }
       class PopupWindow extends Frame
       {
              private Label red = new Label("Please input text");
              private TextField text = new TextField("Hello!");
              private Button submit = new Button("OK");
              public PopupWindow()
              {
                     FlowLayout f = new FlowLayout();
                     setLayout(f);
                     f.setHgap(5);
                     add(red);
                     add(text);
                     add(submit);
                     add(submit);
                     submit.addActionListener(new ActionListener()
                     {
                            publicvoid actionPerformed(ActionEvent e)
                            {
                                   setText(text.getText());
                            }
                     });
              }
       }
}
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值