IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Java Discussion :

Afficher une vue 3D dans un JPanel dans une JFrame


Sujet :

3D Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut Afficher une vue 3D dans un JPanel dans une JFrame
    Bonjour tout le monde,

    j'aurais tout simplement besoin d'avoir une vue 3D dans un JPanel qui est dans une JFrame comme dit le titre en faite...
    J'ai commenté ma classe qui affiche normalement ma vue 3D dans mon JPanel:

    J'espère que quelqu'un me viendra en aide,
    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public class Fenetre{
     
        JLabel labelSelec = new JLabel();// pas important concernant mon problème
        BranchGroup[] groupe;
        BranchGroup objRoot=new BranchGroup();
        Canvas3D canvas3D;
        TransformGroup tg = new TransformGroup();
        SimpleUniverse simpleU;
        public void openFile(String nameFile, int j,int nbreFile){
            if(nameFile.endsWith(".stl")){
                labelSelec.setText("Selection : ");// pas important concernant mon problème
                try{
                    File file = new File(nameFile);
                    final STLFileReader reader = new STLFileReader(file);
                    STLLoader loader = new STLLoader();
                    Scene scene = loader.createScene(reader);
                    groupe = new BranchGroup[200];
                    groupe[j] = scene.getSceneGroup();
                }catch (IOException ex){
                    System.out.println(ex);
                }
                simpleU = new SimpleUniverse(canvas3D);
                simpleU.getViewingPlatform().setNominalViewingTransform();
                tg.addChild(groupe[j]);
                objRoot.addChild(tg);        
                tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); 
                tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); 
     
                canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());     
                canvas3D.setPreferredSize(vue.getSize());
                fonctionMouse();// pas important concernant mon problème
     
                simpleU.addBranchGraph(objRoot);
                View view = simpleU.getViewer().getView();
                view.setBackClipDistance(10000);//permet d'agrandir la profondeur du milieu3D de 10000 unités
                canvas3D.repaint();
                vue.setLayout(layout);
                vue.add(canvas3D);
                vue.repaint();
                vue.validate();
                vue.setBackground(Color.green);//test pour savoir si mon panel réagit bien (la couleur change bien lorsque la fonction openFile() est appelée)
                framePrincipale.add(vue, BorderLayout.CENTER); // framePrincipale est ma JFrame et mon panel vue s'étends bien au centre
            }
        }
        public void fonctionMouse(){ // pas important concernant mon problème
            //******fonction zoom******//
            MouseZoom myMouseZoom = new MouseZoom();
            myMouseZoom.setTransformGroup(tg);
            myMouseZoom.setSchedulingBounds(new BoundingSphere());
            //******fonction rotation******//
            MouseRotate rotate = new MouseRotate(tg);
            rotate.setSchedulingBounds(new BoundingSphere());
            //******fonction déplacement******//
            MouseTranslate translate = new MouseTranslate(tg);
            translate.setSchedulingBounds(new BoundingSphere());
     
            objRoot.addChild(myMouseZoom);
            objRoot.addChild(rotate);
            objRoot.addChild(translate);
        }
    }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Pas de question, pas de réponse.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Pas de question, pas de réponse.
    Comment fait-on pour avoir une vue 3D dans un JPanel qui est dans une JFrame ????

    Je me tiens à votre disposition pour d'amples informations.

  4. #4
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut
    Bonjour,



    Sur mon code, sans le BorderLayout sur le JPanel, l'objet de type Canvas3D ne s'affiche pas. Avec le BorderLayout mis en place, ça fonctionne.

    Benoit

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Super, merci beaucoup.

    T'es pas agressif et en plus tu me viens en aide: +1



+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2010, 12h45
  2. MVVM : Appeler une méthode dans Window à partir d'une vue
    Par tom741 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 09/02/2010, 12h24
  3. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  4. Réponses: 8
    Dernier message: 30/03/2009, 12h45
  5. JPanel dans une JFrame ok, mais JPanel dans un JScrollPane dans une JFrame non :(
    Par FenX. dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 22/05/2008, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo