当前位置: 首页 > 教程 > JOGL >

JOGL 使用Swing的Frame

精华
小牛编辑
114浏览
2023-03-14

JOGL 使用Swing的Frame

Swing 是一个轻量级的图形用户界面工具包,用于开发基于窗口的应用程序。java.swing 包为 Swing API 提供了各种类。

现在,我们将通过以下步骤使用 Canvas 和 Swing 创建一个简单的框架: 

  • 遵循《JOGL Frame框架》搭建 JOGL 的基本结构。
  • 使用 Swing 的 JFrame 类创建框架。
JFrame frame = new JFrame("xnip:Swing Frame");
  • 现在,使用 add() 方法将 GLCanvas 类的对象与 JFrame 类对象一起添加。
frame.add(gc);  
  • 在 setSize() 方法中提供所需的尺寸并使框架可见性为true。
frame.setSize( 500, 400 );  
frame.setVisible(true);  

JOGL 使用Swing的Frame 示例

在本例中,我们将使用 Swing 创建一个简单的 JOGL 框架。

package cn.xnip;

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.*;

public class SwingFrame implements GLEventListener {

    @Override
    public void init(GLAutoDrawable obj) {

    }

    @Override
    public void display(GLAutoDrawable obj) {

    }

    @Override
    public void reshape(GLAutoDrawable obj1, int obj2, int obj3, int obj4, int obj5) {

    }

    @Override
    public void dispose(GLAutoDrawable obj) {

    }

    public static void main(String[] args) {
        final GLProfile gp = GLProfile.get(GLProfile.GL4);
        GLCapabilities cap = new GLCapabilities(gp);

        final GLCanvas gc = new GLCanvas(cap);
        SwingFrame sf = new SwingFrame();
        gc.addGLEventListener(sf);
        gc.setSize(350, 350);

        //Now creating a frame using Frame class of AWT
        final JFrame frame = new JFrame("xnip:Swing Frame");

        frame.add(gc);
        frame.setSize(500, 400);
        frame.setVisible(true);
    }
}  

输出结果如下: