我用了appletview 编译 appletviewer vrml,出现了如下错误。
载入:无法实例化 vrml。
java.lang.InstantiationException: vrml
at java.lang.Class.newInstance0(Class.java:307)
at java.lang.Class.newInstance(Class.java:275)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:630)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:559)
at sun.applet.AppletPanel.run(AppletPanel.java:300)
at java.lang.Thread.run(Thread.java:566)
。底下是vrml.javaimport java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;public class vrml extends Applet{
public BranchGroup createSceneGraph(){
BranchGroup objroot=new BranchGroup();
TransformGroup objscale=new TransformGroup();
Transform3D t3d=new Transform3D();
t3d.setScale(0.8);
objscale.setTransform(t3d);
objroot.addChild(objscale);
BoundingSphere bounds=new BoundingSphere(new Point3d(.0,.0,.0),100.0);
Color3f lightcolor=new Color3f(1.f,1.f,.9f);
Vector3f lightdirection=new Vector3f(1.f,-7.f,-12.f);
DirectionalLight light=new DirectionalLight(lightcolor,lightdirection);
light.setInfluencingBounds(bounds);
objroot.addChild(light);
TransformGroup objtrans=new TransformGroup();
objtrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objscale.addChild(objtrans);
BranchGroup b=new vrmlload("1.wrl");
objtrans.addChild(b);
Transform3D yaxis=new Transform3D();
Alpha rotationalpha=new Alpha(-1,Alpha.INCREASING_ENABLE,0,0,4000,0,0,0,0,0);
RotationInterpolator rotator=new RotationInterpolator(rotationalpha,objtrans,yaxis,.0f,(float)Math.PI*2.f);
rotator.setSchedulingBounds(bounds);
objtrans.addChild(rotator);
objroot.compile();
return objroot;
}
public vrml(String args[]){
setLayout(new BorderLayout());
GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
Canvas3D c=new Canvas3D(config);
add("Center",c);
BranchGroup scene=createSceneGraph();
SimpleUniverse u=new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args){
new MainFrame(new vrml(args),400,400);
}
}//<applet code=vrml width=400 height=400></applet>///
//底下是vrmlload.java
import javax.media.j3d.*;
import java.io.*;
import com.sun.j3d.loaders.vrml97.VrmlLoader;
import com.sun.j3d.loaders.Scene;public class vrmlload extends BranchGroup{
public vrmlload(String filename){
BranchGroup obj=new BranchGroup();
VrmlLoader loader=new VrmlLoader();
Scene s=null;
try{
s=loader.load(filename);
}
catch(Exception e){
System.err.println(e);
System.exit(1);
}
obj.addChild(s.getSceneGroup());
this.addChild(obj);
}
}//底下是
1.wrl#VRML V2.0 utf8Transform {
rotation 0 0 1 1.60
children [
Shape {
appearance Appearance {
material Material {
emissiveColor 1 0 1
}
}
geometry Cone {
bottomRadius 0.5
height 1
side TRUE
bottom TRUE
}
}
]
}很奇怪 我用java vrml可以看出效果,但是换成appletviewer却不成。
载入:无法实例化 vrml。
java.lang.InstantiationException: vrml
at java.lang.Class.newInstance0(Class.java:307)
at java.lang.Class.newInstance(Class.java:275)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:630)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:559)
at sun.applet.AppletPanel.run(AppletPanel.java:300)
at java.lang.Thread.run(Thread.java:566)
。底下是vrml.javaimport java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;public class vrml extends Applet{
public BranchGroup createSceneGraph(){
BranchGroup objroot=new BranchGroup();
TransformGroup objscale=new TransformGroup();
Transform3D t3d=new Transform3D();
t3d.setScale(0.8);
objscale.setTransform(t3d);
objroot.addChild(objscale);
BoundingSphere bounds=new BoundingSphere(new Point3d(.0,.0,.0),100.0);
Color3f lightcolor=new Color3f(1.f,1.f,.9f);
Vector3f lightdirection=new Vector3f(1.f,-7.f,-12.f);
DirectionalLight light=new DirectionalLight(lightcolor,lightdirection);
light.setInfluencingBounds(bounds);
objroot.addChild(light);
TransformGroup objtrans=new TransformGroup();
objtrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objscale.addChild(objtrans);
BranchGroup b=new vrmlload("1.wrl");
objtrans.addChild(b);
Transform3D yaxis=new Transform3D();
Alpha rotationalpha=new Alpha(-1,Alpha.INCREASING_ENABLE,0,0,4000,0,0,0,0,0);
RotationInterpolator rotator=new RotationInterpolator(rotationalpha,objtrans,yaxis,.0f,(float)Math.PI*2.f);
rotator.setSchedulingBounds(bounds);
objtrans.addChild(rotator);
objroot.compile();
return objroot;
}
public vrml(String args[]){
setLayout(new BorderLayout());
GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
Canvas3D c=new Canvas3D(config);
add("Center",c);
BranchGroup scene=createSceneGraph();
SimpleUniverse u=new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args){
new MainFrame(new vrml(args),400,400);
}
}//<applet code=vrml width=400 height=400></applet>///
//底下是vrmlload.java
import javax.media.j3d.*;
import java.io.*;
import com.sun.j3d.loaders.vrml97.VrmlLoader;
import com.sun.j3d.loaders.Scene;public class vrmlload extends BranchGroup{
public vrmlload(String filename){
BranchGroup obj=new BranchGroup();
VrmlLoader loader=new VrmlLoader();
Scene s=null;
try{
s=loader.load(filename);
}
catch(Exception e){
System.err.println(e);
System.exit(1);
}
obj.addChild(s.getSceneGroup());
this.addChild(obj);
}
}//底下是
1.wrl#VRML V2.0 utf8Transform {
rotation 0 0 1 1.60
children [
Shape {
appearance Appearance {
material Material {
emissiveColor 1 0 1
}
}
geometry Cone {
bottomRadius 0.5
height 1
side TRUE
bottom TRUE
}
}
]
}很奇怪 我用java vrml可以看出效果,但是换成appletviewer却不成。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货