JOGL - Kanvas dengan AWT
Bab ini menjelaskan cara menggambar bingkai dasar JOGL menggunakan Canvas dengan bingkai AWT. Di sini kita akan membuat Bingkai AWT dan menambahkan objek kanvas ke bingkai AWT menggunakanadd() metode kelas bingkai.
Di bawah ini diberikan langkah-langkah untuk menulis program yang membuat bingkai dasar JOGL dengan kombinasi kelas Canvas JOGL dan kelas Bingkai AWT.
Langkah 1: Membuat Kelas
Awalnya buat kelas yang mengimplementasikan GlEventListenerantarmuka dan impor paket javax.media.opengl. Terapkan keempat metode tersebutdisplay(), dispose(), reshape(), init().Karena ini adalah bingkai dasar, tugas-tugas primitif seperti membuat kelas kanvas, menambahkannya ke bingkai dibahas. SemuaGLEVentListener metode antarmuka dibiarkan tidak diterapkan.
Langkah2: Mempersiapkan Kanvas
(a) Membangun GLCanvas objek kelas
final GLCanvas glcanvas = new GLCanvas( xxxxxxx );
//here capabilities obj should be passed as parameter
(b) Instantiating GLCapabilities kelas
GLCapabilities capabilities = new GLCapabilities( xxxxx );
//here profile obj should be passed as parameter
(c) Menghasilkan GLProfile obyek
Karena ini adalah metode statis, ini dipanggil menggunakan nama kelas. Karena tutorial ini tentang JOGL2, mari kita buat objek antarmuka GL2.
final GLProfile profile = GLProfile.get( GLProfile.GL2 );
// both, variable and method are static hence both are called using class name.
Mari kita lihat cuplikan kode untuk kanvas.
//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);
(d) Sekarang tambahkan GLEventListener ke kanvas menggunakan metode ini addGLEventListener(). Metode ini membutuhkan objekGLEventListenerantarmuka sebagai parameter. Oleh karena itu, kirimkan objek dari kelas yang mengimplementasikanGLEventListener.
BasicFrame basicframe = newBasic Frame( );// class which implements
GLEventListener interface
glcanvas.addGLEventListener( basicframe );
(e) Setel ukuran bingkai menggunakan metode setSize () yang diwarisi oleh GLCanvas dari javax.media.opengl.awt.AWTGLAutoDrawable.
glcanvas.setSize( 400, 400 );
Sekarang Anda siap dengan GLCanvas.
Step3: Membuat Frame
Buat bingkai dengan membuat instance Frame kelas Objek komponen bingkai JSE AWT.
Tambahkan kanvas ke dalamnya dan buat bingkai terlihat.
//creating frame
final Frame frame = new frame( " Basic Frame" );
//adding canvas to frame
frame.add( glcanvas );
frame.setVisible( true );
Langkah 4: Melihat Bingkai dalam Layar Penuh
Untuk melihat bingkai dalam layar penuh, dapatkan ukuran layar default menggunakan java.awt.Toolkitkelas. Sekarang, dengan menggunakan dimensi ukuran layar default tersebut, atur ukuran bingkai menggunakansetSize() metode.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize.width, screenSize.height);
Mari kita melalui program untuk menghasilkan bingkai dasar menggunakan AWT -
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 Frame frame = new Frame (" Basic Frame");
//adding canvas to frame
frame.add(glcanvas);
frame.setSize( 640, 480 );
frame.setVisible(true);
}
}
Jika Anda mengkompilasi dan menjalankan program di atas, keluaran berikut akan dihasilkan. Ini menunjukkan bingkai dasar yang terbentuk saat kita gunakanGLCanvas kelas dengan AWT -