Учебники

JOGL — Холст с качелями

В этой главе объясняется, как рисовать базовый фрейм JOGL с использованием Canvas и класса JFrame пакета javax.swing. Здесь мы создадим экземпляр JFrame и добавим объект canvas к экземпляру JFrame, используя метод add () .

Использование Canvas с AWT дает вам графическую рамку с расширенными возможностями. Для облегчения графического фрейма вам нужно использовать GLCanvas с Swing. При использовании GLCanvas с Swing вы можете поместить GLCanvas непосредственно в окно JFrame или добавить его в JPanel .

Ниже приведена программа, которая создает базовый фрейм JOGL с комбинацией класса GLCanvas JOGL и класса JFrame пакета 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          

Если вы скомпилируете и выполните вышеуказанную программу, будет сгенерирован следующий вывод. Это показывает основной кадр, сформированный, когда мы используем GLCanvas с окном Swing.