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

OpenGL Discussion :

Difference GLJpanel et GLCanvas ?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 88
    Par défaut Difference GLJpanel et GLCanvas ?
    Bonjour,

    Je m'interesse depuis peu à OpenGL et je me fais la main sur différents tutos en java ( jogl ). Je suis tombé sur 2 cas d'initialisation :

    - avec GLJPanel

    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
     
    public class XXX extends JFrame implements GLEventListener{
     
        protected               GLJPanel       GLJPanel1      = null;
     
        public static void main(String[] args) {  
            new XXX();
        }
     
        public XXX() {
            super("XXX");
     
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            GLCapabilities  GLCapabilities1  = new GLCapabilities();
            GLCapabilities1.setHardwareAccelerated(true);
            GLCapabilities1.setDoubleBuffered(true);
            GLCapabilities1.setDepthBits(8);
     
            // to show we can mix AWT and opengl rendering
            GLJPanel1 = new GLJPanel(GLCapabilities1) {
                public void paint (Graphics Graphics_Arg){
                    super.paint(Graphics_Arg);
                }
            };
     
            GLJPanel1.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    ...
                    GLJPanel1.repaint();
                }
            });
     
            GLJPanel1.setFocusable(true);
            GLJPanel1.setRequestFocusEnabled(true);
     
            Thread Thread1 = new Thread(){
                public void run(){
                    while (true) {
                        Thread.currentThread().yield();
                        try {
                            Thread.currentThread().sleep(10);
                        } catch (InterruptedException e) {}
                    }
                }
            };
            Thread1.start();
     
            GLJPanel1.addGLEventListener(this);    
            setSize(512, 512);
            setVisible(true);
            GLJPanel1.requestFocus();
      }// Constructor
    - avec GLCanvas

    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
     
    class Main implements GLEventListener, MouseListener, MouseMotionListener, KeyListener {
        private GLU glu = new GLU();
     
        public static void main(String[] args) {
            Frame frame = new Frame("Test");
            GLCanvas canvas = new GLCanvas();
            canvas.addGLEventListener(new Main());
     
            frame.add(canvas);
            frame.setSize(640, 480);
     
            animator = new Animator(canvas);
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    new Thread(new Runnable() {
                        public void run() {
                            animator.stop();
                            System.exit(0);
                        }
                    }).start();
                }
            });
     
            frame.setVisible(true);
            animator.start();
        }
    Hormis la mise en oeuvre qui est différente, je ne vois pas pourquoi choisir l'un plutôt que l'autre ?


    Merci de vos lumières

    Laurent

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    GLJPanel est un composant Swing et GLCanvas est un composant AWT. Normalement il faut préférer les composants Swing donc je dirais de travailler plutôt avec GLJPanel mais cela dépend du reste de l'application.

    Jc

Discussions similaires

  1. [JOGL] gljpanel vs glcanvas
    Par gorgonite dans le forum 3D
    Réponses: 1
    Dernier message: 03/09/2015, 16h17
  2. GLJpanel et GLCanvas
    Par hwoarang dans le forum OpenGL
    Réponses: 2
    Dernier message: 29/05/2009, 10h02
  3. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  4. [] Difference entre MSHFlexGrid et MSFlexGrid
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2003, 08h48
  5. Difference entre types d'Adresse IP
    Par freud dans le forum Développement
    Réponses: 3
    Dernier message: 02/03/2003, 02h06

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