Jogl-canvas-with-swing
提供:Dev Guides
JOGL-Swingを使用したキャンバス
この章では、 Canvas およびjavax.swingパッケージの JFrame クラスを使用してJOGL基本フレームを描画する方法について説明します。 ここで、JFrameをインスタンス化し、* add()*メソッドを使用してJFrameのインスタンスにキャンバスオブジェクトを追加します。
CanvasをAWTで使用すると、ヘビーウェイト機能を備えたグラフィカルフレームが得られます。 軽量のグラフィカルフレームを使用するには、Swingで GLCanvas を使用する必要があります。 Swingで GLCanvas を使用しているときに、 JFrame ウィンドウに GLCanvas を直接配置するか、 JPanel に追加できます。
以下に示すのは、JOGLの GLCanvas クラスと_javax.swing_パッケージの JFrame クラスの組み合わせでJOGL基本フレームを作成するプログラムです。
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
上記のプログラムをコンパイルして実行すると、次の出力が生成されます。 Swingウィンドウで GLCanvas を使用したときに形成される基本的なフレームを示しています。