JOGL - Toile avec balançoire

Ce chapitre vous explique comment dessiner un cadre de base JOGL en utilisant Canvas, et JFrameclasse du package javax.swing. Ici, nous allons instancier un JFrame et ajouter l'objet canvas à l'instance de JFrame en utilisant leadd() méthode.

L'utilisation de Canvas avec AWT vous donne un cadre graphique avec des fonctionnalités lourdes. Pour avoir un cadre graphique léger, vous devez utiliserGLCanvasavec Swing. Tout en utilisantGLCanvas avec Swing, vous pouvez placer GLCanvas dans le JFrame fenêtre directement, ou vous pouvez l'ajouter à JPanel.

Vous trouverez ci-dessous le programme qui crée un cadre de base JOGL avec la combinaison de JOGL GLCanvas classe et JFrameclasse du package javax.swing .

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 canvas
      final GLCanvas glcanvas = new GLCanvas(capabilities);
      BasicFrame b = new BasicFrame();
      glcanvas.addGLEventListener(b);
      glcanvas.setSize(400, 400);
		
      //creating frame
      final JFrame frame = new JFrame (" Basic Frame");
		
      //adding canvas to it
      frame.getContentPane().add(glcanvas);
      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 utilisonsGLCanvas avec fenêtre Swing.