Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : 3D [ Divers / Débutant(e) ] (papse)

samedi 17 mai 2008 à 19:50:24 | 3D

papse

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;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: </p>
 *
 * @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);
  }
}




samedi 17 mai 2008 à 23:20:03 | Re : 3D

baratribord

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 ?



dimanche 18 mai 2008 à 23:44:40 | Re : 3D

papse

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

lundi 19 mai 2008 à 07:19:43 | Re : 3D

gouessej

Réponse acceptée !
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



Cette discussion est classé dans : frame, 3d, scene, import, etape


Répondre à ce message

Sujets en rapport avec ce message

java 3d [ par amanatarra7man ] Svp ce code affiche 2 cylindre de grandeurs differents  je ve afficher l'un sous l'autre mais je pe pas svp aidez moivoila le code:/ Etape 1 :// Impor [debutant] image dans un jar [ par jeremeclip ] bonjour voici mon probleme. Je viens de faire une petite application donc dans cette application je doit avoir une image de fond et par dessu j'ia des JEditorPane et Applets [ par louatiamin ] le code est mis en ba il permet de charger des pages html dans un panel JEditorPanebon le probleme est que lorsque la page a charger elle meme contien problème entre Swing et SwingWorker [ par theFrogkiller ] bonjour, voilà je développe une application autour de lancements de dés. une partie consiste en l'affichage progressif du résultat de lancement de dés Probleme lors d'une copie de fichier [ par asetti ] Slt, j'ai créer ce code juste pour essayer (avant de coder pour de bon) de copier un fichier "C:/a.txt" dans "C:/nn/a.txt".pour ça et comme je ne mait Timer ? CA MARCHE PAS §?§ [ par Asrull ] piou piou piou ... ... ... Voilà, je veux utiliser un Timer pour faire défiler à intervalle régulier plusieurs images contenues dans un Vector ... Tes est ce que ca est un pb de rafrichissement d'une scene 3D? [ par a_farsi ] bonjour pour quoi quand je visualise ma des scenes de java3D dans un Appletviewer la scene parfois disparu, elle n'appraisse que lorsque je clique des Probleme d'affichage d'une scene3d [ par olaaa ] Salut!Bon alors en fait mon probleme est le suivant: Je met une scene contenant un objet 3d qui tourne, normal, dans une JInternalFrame, que je met da Bouton créant un bouton [ par kanagan ] Bonjour, Voilà, j'ai un petit problème, je veux créer un bouton qui, lorsque l'on clique dessus, crée un autre bouton. Cependant je n'arrive pas à af


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 20,655 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.