JOGL - 畫布與 Swing



本章解釋如何使用 javax.swing 包的 CanvasJFrame 類繪製 JOGL 基本幀。在此處,我們將例項化 JFrame,並使用 add() 方法將 Canvas 物件新增到 JFrame 的例項。

將 Canvas 與 AWT 結合使用,可提供具有重量級功能的圖形幀。要獲得輕量級圖形幀,需要將 GLCanvas 與 Swing 結合使用。在將 GLCanvas 與 Swing 結合使用時,可以直接將 GLCanvas 放置在 JFrame 視窗中,也可以將其新增到 JPanel

下面給出了建立 JOGL 基本幀的程式,該幀結合了 JOGL 的 GLCanvas 類和 javax.swing 包的 JFrame 類。

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 視窗結合使用時形成的基本幀。

Basic Frame
廣告