JOGL - Canvas với xích đu

Chương này giải thích cho bạn cách vẽ một khung cơ bản JOGL bằng cách sử dụng CanvasJFramelớp của gói javax.swing. Ở đây, chúng ta sẽ khởi tạo một JFrame và thêm đối tượng canvas vào phiên bản của JFrame bằng cách sử dụngadd() phương pháp.

Sử dụng Canvas với AWT mang lại cho bạn khung đồ họa với các tính năng nặng. Để có một khung hình đồ họa nhẹ, bạn cần sử dụngGLCanvasvới Swing. Trong khi sử dụngGLCanvas với Swing, bạn có thể đặt GLCanvas bên trong JFrame cửa sổ trực tiếp hoặc bạn có thể thêm nó vào JPanel.

Dưới đây là chương trình tạo khung cơ bản JOGL với sự kết hợp của JOGL GLCanvas lớp học và JFramelớp của gói 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

Nếu bạn biên dịch và thực thi chương trình trên, kết quả sau sẽ được tạo. Nó cho thấy một khung cơ bản được hình thành khi chúng ta sử dụngGLCanvas với cửa sổ Swing.