- JOGL 圖形形狀
- JOGL - 繪圖基礎
- JOGL - 使用 GL_Lines 繪圖
- JOGL - 預定義形狀
- JOGL 3D 圖形
- JOGL - 3D 基礎
- JOGL - 3D 三角形
- JOGL - 3D 立方體
- JOGL - 附錄
- JOGL 實用資源
- JOGL - 快速指南
- JOGL - 實用資源
- JOGL - 討論
JOGL - 畫布與 Swing
本章解釋如何使用 javax.swing 包的 Canvas 和 JFrame 類繪製 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 視窗結合使用時形成的基本幀。
廣告