В этой главе объясняется, как рисовать базовый фрейм JOGL с использованием Canvas и класса JFrame пакета javax.swing. Здесь мы создадим экземпляр JFrame и добавим объект canvas к экземпляру JFrame, используя метод add () .
Использование Canvas с AWT дает вам графическую рамку с расширенными возможностями. Для облегчения графического фрейма вам нужно использовать GLCanvas с Swing. При использовании GLCanvas с Swing вы можете поместить GLCanvas непосредственно в окно JFrame или добавить его в JPanel .
Ниже приведена программа, которая создает базовый фрейм JOGL с комбинацией класса GLCanvas JOGL и класса JFrame пакета 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
Если вы скомпилируете и выполните вышеуказанную программу, будет сгенерирован следующий вывод. Это показывает основной кадр, сформированный, когда мы используем GLCanvas с окном Swing.