/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * NewJApplet.java * * Created on 16 avr. 2009, 12:40:10 */ package mypackage; // Etape 1 : // Importation des packages Java 2 import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.Primitive; import com.sun.j3d.utils.geometry.Sphere; import com.sun.j3d.utils.universe.SimpleUniverse; import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Frame; import javax.media.j3d.Appearance; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import javax.media.j3d.Material; import javax.swing.JPanel; import javax.vecmath.Color3f; public class NewJApplet extends Applet { /** Initializes the applet NewJApplet */ /** @Override public void init() { try { java.awt.EventQueue.invokeAndWait(new Runnable() { public void run() { NewJApplet(); jPanel1.setVisible(true); } }); } catch (Exception ex) { ex.printStackTrace(); } } */ public static void main(String[] args) { Frame frame = new MainFrame(new NewJApplet(), 400, 400); } public NewJApplet() { this.setLayout (new BorderLayout ()); JPanelCanvas3D jPanel3 = new JPanelCanvas3D(Color.blue); this.add(jPanel3, BorderLayout.CENTER); } /** * Construction d'un JPanel contenant une sphere couleur */ public static class JPanelCanvas3D extends JPanel { Canvas3D canvas3D = null; public JPanelCanvas3D(Color sphereColor) { this.setLayout(new BorderLayout()); // Etape 3 : // Creation du Canvas 3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); this.add(canvas3D, BorderLayout.CENTER); // Etape 4 : // Creation d'un objet SimpleUniverse SimpleUniverse simpleU = new SimpleUniverse(canvas3D); // Etape 5 : // Positionnement du point d'observation pour avoir une vue correcte de la // scene 3D simpleU.getViewingPlatform().setNominalViewingTransform(); // Etape 6 : // Creation de la scene 3D qui contient tous les objets 3D que l'on veut visualiser BranchGroup scene = createSceneGraph(sphereColor); // Etape 7 : // Compilation de la scene 3D scene.compile(); // Etape 8: // Attachement de la scene 3D a l'objet SimpleUniverse simpleU.addBranchGraph(scene); } /** * Creation de la scene 3D qui contient tous les objets 3D * @param sphereColor couleur de la sphere * @return scene 3D */ public BranchGroup createSceneGraph(Color sphereColor) { // Creation de l'objet parent qui contiendra tous les autres objets 3D BranchGroup parent = new BranchGroup(); // Creation du materiau qui possede une couleur d'emission blanche Material emissiveColor = new Material(); emissiveColor.setEmissiveColor(new Color3f(sphereColor)); // Creation de l'apparence qui contient le materiau precedemment cree Appearance appearance = new Appearance(); appearance.setMaterial(emissiveColor); // Creation de la sphere pour laquelle on applique l'apparence contenant // la couleur d'emission Sphere sphere = new Sphere(0.5f, Primitive.GENERATE_NORMALS, 64); sphere.setAppearance(appearance); parent.addChild(sphere); return parent; } /** * Methode surchargee de JPanel afin de synchroniser l'affichage du * canvas 3D avec celui du JPanel * @param v boolean */ public void setVisible(boolean v) { super.setVisible(v); canvas3D.setVisible(v); } } }