JOGL - Lona con columpio

Este capítulo explica cómo dibujar un marco básico de JOGL utilizando Canvasy JFrameclase de paquete javax.swing. Aquí crearemos una instancia de un JFrame y agregaremos el objeto de lienzo a la instancia de JFrame usando eladd() método.

El uso de Canvas con AWT le brinda un marco gráfico con características de peso. Para tener un marco gráfico ligero, debe utilizarGLCanvascon Swing. Durante el usoGLCanvas con Swing, puedes colocar GLCanvas en el JFrame ventana directamente, o puede agregarlo a JPanel.

A continuación se muestra el programa que crea un marco básico JOGL con la combinación de JOGL GLCanvas clase y JFrameclase del paquete 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 compila y ejecuta el programa anterior, se genera la siguiente salida. Muestra un marco básico formado cuando usamosGLCanvas con ventana abatible.