JOGL - Toile avec AWT

Ce chapitre vous explique comment dessiner un cadre de base JOGL à l'aide de Canvas avec cadre AWT. Ici, nous allons construire un cadre AWT et ajouter l'objet canevas au cadre AWT en utilisant leadd() méthode de la classe frame.

Vous trouverez ci-dessous les étapes pour écrire un programme qui crée un cadre de base JOGL avec la combinaison de la classe Canvas de JOGL et de la classe Frame d'AWT.

Étape 1: Création de la classe

Créez initialement une classe qui implémente GlEventListenerinterface et importez le package javax.media.opengl. Mettre en œuvre les quatre méthodesdisplay(), dispose(), reshape(), init().Puisqu'il s'agit du cadre de base, les tâches primitives telles que la création d'une classe de canevas, son ajout au cadre ont été discutées. Tous lesGLEVentListener les méthodes d'interface n'ont pas été mises en œuvre.

Étape 2: préparation du canevas

(a) Construire le GLCanvas objet de classe

final GLCanvas glcanvas = new GLCanvas( xxxxxxx );

//here capabilities obj should be passed as parameter

(b) Instancier le GLCapabilities classe

GLCapabilities capabilities = new GLCapabilities( xxxxx );

//here profile obj should be passed as parameter

(c) Générateur GLProfile objet

Comme il s'agit de la méthode statique, elle est appelée à l'aide du nom de classe. Puisque ce tutoriel concerne JOGL2, générons l'objet d'interface GL2.

final GLProfile profile = GLProfile.get( GLProfile.GL2 );

// both, variable and method are static hence both are called using class name.

Voyons l'extrait de code pour canvas.

//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);

(d) Maintenant, ajoutez GLEventListener au canevas en utilisant la méthode addGLEventListener(). Cette méthode nécessite un objet deGLEventListenerinterface comme paramètre. Par conséquent, passez l'objet d'une classe qui implémenteGLEventListener.

BasicFrame basicframe = newBasic Frame( );// class which implements
GLEventListener interface
glcanvas.addGLEventListener( basicframe );

(e) Définissez la taille du cadre à l'aide de la méthode setSize () héritée par GLCanvas de javax.media.opengl.awt.AWTGLAutoDrawable.

glcanvas.setSize( 400, 400 );

Maintenant tu es prêt avec GLCanvas.

Étape 3: Création du cadre

Créez le cadre en instanciant le Frame class Objet du composant de cadre JSE AWT.

Ajoutez-y une toile et rendez le cadre visible.

//creating frame
final Frame frame = new frame( " Basic Frame" );

//adding canvas to frame
frame.add( glcanvas );
frame.setVisible( true );

Étape 4: Affichage du cadre en plein écran

Pour afficher le cadre en plein écran, obtenez la taille d'écran par défaut en utilisant java.awt.Toolkitclasse. Maintenant, en utilisant ces dimensions de taille d'écran par défaut, définissez la taille du cadre en utilisantsetSize() méthode.

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize.width, screenSize.height);

Passons en revue le programme pour générer la trame de base en utilisant AWT -

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 Frame frame = new Frame (" Basic Frame");
        
      //adding canvas to frame
      frame.add(glcanvas);
      frame.setSize( 640, 480 );
      frame.setVisible(true);
   }
	
}

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 classe avec AWT -