JOGL - Classe GLJPanel

Ce chapitre vous explique comment dessiner un cadre de base JOGL à l'aide de la classe GLJpanel. Il s'agit d'un composant Swing léger qui prend en charge le rendu OpenGL. Il est fourni pour la compatibilité avec Swing. Ici, nous allons instancier un JFrame et ajouter l'objet GLJpanel à l'instance de JFrame en utilisant leadd() méthode.

Le programme suivant génère une image de base en utilisant GLJPanel avec fenêtre battante -

import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;

import javax.swing.JFrame;

public class BasicFrame implements GLEventListener {

   @Override
   public void display(GLAutoDrawable arg0) {
      // method body
   }
   
   @Override
   public void dispose(GLAutoDrawable arg0) {
      //method body
   }
   
   @Override
   public void init(GLAutoDrawable arg0) {
      // method body
   }
   
   @Override
   public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4) {
      // method body
   }
   
   public static void main(String[] args) {
   
      //getting the capabilities object of GL2 profile
      final GLProfile profile = GLProfile.get(GLProfile.GL2);
      GLCapabilities capabilities = new GLCapabilities(profile);
      
      // The GLJpanel class
      GLJPanel gljpanel = new GLJPanel( glcapabilities ); 
      BasicFrame b = new BasicFrame();
      gljpanel.addGLEventListener(b);
      gljpanel.setSize(400, 400);
      
      //creating frame
      final JFrame frame = new JFrame (" Basic Frame");
      
      //adding canvas to it
      frame.getContentPane().add( gljpanel);
      frame.setSize(frame.getContentPane().getPreferredSize());
      frame.setVisible(true);
      
   }//end of main
	
}//end of classimport

Si vous compilez et exécutez le programme ci-dessus, la sortie suivante est générée. Il montre un cadre de base formé lorsque nous utilisonsGLJPanel avec fenêtre battante -