JOGL - Tela com Swing
Este capítulo explica como desenhar um quadro básico JOGL usando Canvase JFrameclasse do pacote javax.swing. Aqui, iremos instanciar um JFrame e adicionar o objeto de tela à instância do JFrame usando oadd() método.
Usar o Canvas com AWT oferece um quadro gráfico com recursos pesados. Para ter um quadro gráfico leve, você precisa usarGLCanvascom Swing. Enquanto estiver usandoGLCanvas com Swing, você pode colocar GLCanvas no JFrame janela diretamente, ou você pode adicioná-la a JPanel.
Abaixo fornecido é o programa que cria um quadro básico JOGL com a combinação de JOGL's GLCanvas classe e JFrameclasse do pacote 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
Se você compilar e executar o programa acima, a seguinte saída será gerada. Ele mostra um quadro básico formado quando usamosGLCanvas com janela Swing.