Hi,
I have a doubt about the Java 3D programming. I have the following code:
import com.sun.j3d.utils.geometry.Box;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Material;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.swing.JFrame;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import javax.vecmath.Vector3f;
public class Helicoptero extends JFrame
{
/** Creates a new instance of Helicoptero */
public Helicoptero()
{
Canvas3D canvas3D = createCanvas3D();
add("Center", canvas3D);
BranchGroup scene = createSceneGraph();
connect(canvas3D, scene);
}
private Canvas3D createCanvas3D()
{
setSize(300, 300);
getContentPane().setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
setSize(300, 300);
getContentPane().add(canvas3D);
return canvas3D;
}
private BranchGroup createSceneGraph()
{
BranchGroup objRoot = new BranchGroup();
Box base = new Box();
objRoot.addChild(base);
objRoot.compile();
return objRoot;
}
private void connect(Canvas3D canvas3D, BranchGroup scene)
{
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene);
}
public static void main(String[] args)
{
new Helicoptero().setVisible(true);
}
}
When I execute my program, appears a Window but with the background black, without the box that I had included on my application. Someone can help me and say me why the box not appears in that Window? What is the problem in my code?
Thanks.