3D

Résolu
cs_papse Messages postés 51 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 8 mars 2011 - 17 mai 2008 à 19:50
 Utilisateur anonyme - 19 mai 2008 à 07:19
Bonjour à  tous

je suis élève ingénieur et j'ai un mini projet qui consiste à développer
une application faisant des figures 3D (cube cylindre pyramide et cône )


Je le fait en Java en créant l'interface graphique de l'application sur
une frame et j'ai mis le code qui permet de créer la scéne 3D dans une
classe (voir le code ci dessous)

j'ai appelé la classe de la scène pour le tracé dans un jbouton comme suit

 

public void jButton4_actionPerformed(ActionEvent e) {

        Frame Frame2 = new MainFrame(new Box3D(), 900, 650);      

    }


En executant ça marche mais mon probleme est que la scéne est affichée
dans une autre Frame qu'il crée ; alors que  moi je veux que la scène
soit affichée dans le Frame (l'interface) de mon application.

Pouvez vous me dire comment faire de telle sorte que la scène soit
affichée sur l'interface de mon application au lieu sur une  autre
fenetre (frame)


Merci d'avance de votre aide


code de la scène :


package pac;


/**

 * Title:


 *

 * Description:


 *

 * Copyright: Copyright (c) 2008


 *

 * Company:


 *

 * @author not attributable

 * @version 1.0

 */


// Etape 1 :

// Importation des packages Java 2

import java.applet.Applet;

import java.awt.*;


// Etape 2 :

// Importation des packages Java 3D

import com.sun.j3d.utils.applet.MainFrame;

import com.sun.j3d.utils.geometry.*;

import com.sun.j3d.utils.universe.*;

import javax.media.j3d.*;


public class Box3D extends Applet {


  public Box3D() {

    this.setLayout(new BorderLayout());


    // Etape 3 :

    // Creation du Canvas 3D

    Canvas3D 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();


    // 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

   * @return scene 3D

   */

  public BranchGroup createSceneGraph() {

    // Creation de l'objet parent qui contiendra tous les autres objets 3D

    BranchGroup parent = new BranchGroup();


    /************ Partie de code concernant l'animation du cube *************/

    /* Elle sera expliquee en details dans les chapitres relatifs aux

       transformations geometriques et aux animations */

    TransformGroup objSpin = new TransformGroup();

    objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

    Alpha rotationAlpha = new Alpha(-1, 4000);

    RotationInterpolator rotator =

    new RotationInterpolator(rotationAlpha, objSpin);

    BoundingSphere bounds = new BoundingSphere();

    rotator.setSchedulingBounds(bounds);

    objSpin.addChild(rotator);

    /*************** Fin de la partie relative a l'animation ***************/


    // Arriere plan en blanc

    Background background = new Background(1, 1, 1);

    background.setApplicationBounds(new BoundingBox());

    parent.addChild(background);


     // Construction du parallelepipede

    objSpin.addChild(new Box(0.5f, 0.5f, 0.5f, null));

    parent.addChild(objSpin);


    return parent;

  }


  /**

   * Etape 9 :

   * Methode main() nous permettant d'utiliser cette classe comme une applet

   * ou une application.

   * @param args

   */

  public static void main(String[] args) {

    Frame Frame2 = new MainFrame(new Box3D(), 900, 650);

  }

}

3 réponses

Utilisateur anonyme
19 mai 2008 à 07:19
Bonjour

Modifie Box3D pour qu'elle étende plutôt Panel ou bien JPanel et ajoute la dans ta fenêtre, c'est pas bien difficile, tu es élève ingénieur quand même, c'est la base, c'est ce que j'ai vu en première année à l'université.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
3
baratribord Messages postés 44 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 30 mai 2008
17 mai 2008 à 23:20
Les applets ne s'utilisent pas avec la méthode main() mais avec void init me semble t-il.
Je débute également en java mais n'est-ce pas JApplet qu'il faut utiliser ?
0
cs_papse Messages postés 51 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 8 mars 2011
18 mai 2008 à 23:44
[auteur/BARATRIBORD/1361171.aspx salut    baratribord]



En fait ce n'est pas un applet que je veux mais plustôt une application sur interface graphique avec barre de menu et des boutons
0
Rejoignez-nous