📜  JOGL-带秋千的帆布

📅  最后修改于: 2020-11-13 04:52:51             🧑  作者: Mango


本章介绍如何使用Canvas和javax.swing包的JFrame类绘制JOGL基本框架。在这里,我们将实例化一个JFrame并使用add()方法将画布对象添加到JFrame的实例中。

将Canvas与AWT一起使用可为您提供具有重量级功能的图形框架。为了拥有轻量级的图形框架,您需要将GLCanvas与Swing结合使用。将GLCanvas与Swing一起使用时,可以将GLCanvas直接放置在JFrame窗口中,也可以将其添加到JPanel中

下面给出的程序将结合JOGL的GLCanvas类和javax.swing包的JFrame类创建一个JOGL基本框架。

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          

如果编译并执行上述程序,则会生成以下输出。它显示了当我们在Swing窗口中使用GLCanvas时形成的基本框架。

基本框架