在自己的机子中做了如下的设置,但在加载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.*;
public
class
JSAITextChanged
extends
Script {
private
MFString
textNode
=
null
;
public
void
initialize()
{
Node node = (Node)((SFNode)getField(
"text"
)).getValue();
textNode
= (MFString)(node.getExposedField(
"string"
));
PopupWindow p =
new
PopupWindow();
//p.pack();
p.setVisible(
true
);
}
private
void
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()
{
public
void
actionPerformed(ActionEvent e)
{
setText(
text
.getText());
}
});
}
}
}