JOGL - AWT ile Tuval
Bu bölüm, Canvas ile AWT çerçevesini kullanarak bir JOGL temel çerçevesinin nasıl çizileceğini açıklar. Burada bir AWT Çerçevesi oluşturacağız ve tuval nesnesini AWT çerçevesine ekleyeceğiz.add() çerçeve sınıfının yöntemi.
Aşağıda, JOGL'nin Canvas sınıfı ve AWT'nin Frame sınıfının birleşimi ile bir JOGL temel çerçevesi oluşturan bir program yazma adımları verilmiştir.
Adım 1: Sınıfı Oluşturma
Başlangıçta uygulayan bir sınıf oluşturun GlEventListenerarabirim ve javax.media.opengl paketini içe aktarın. Dört yöntemi de uygulayındisplay(), dispose(), reshape(), init().Bu temel çerçeve olduğundan, tuval sınıfı oluşturma, çerçeveye ekleme gibi ilkel görevler tartışılmıştır. HepsiGLEVentListener arayüz yöntemleri uygulanmadan bırakıldı.
Adım 2: Tuvali Hazırlama
(a) İnşa etmek GLCanvas sınıf nesnesi
final GLCanvas glcanvas = new GLCanvas( xxxxxxx );
//here capabilities obj should be passed as parameter
(b) Örnekleme GLCapabilities sınıf
GLCapabilities capabilities = new GLCapabilities( xxxxx );
//here profile obj should be passed as parameter
(c) Üretiliyor GLProfile nesne
Statik yöntem olduğu için sınıf adı kullanılarak çağrılır. Bu eğitim JOGL2 ile ilgili olduğundan, GL2 arayüz nesnesi oluşturalım.
final GLProfile profile = GLProfile.get( GLProfile.GL2 );
// both, variable and method are static hence both are called using class name.
Canvas için kod parçacığını görelim.
//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) Şimdi ekle GLEventListener yöntemi kullanarak tuvale addGLEventListener(). Bu yöntemin nesnesine ihtiyacı varGLEventListenerparametre olarak arayüz. Bu nedenle, uygulayan bir sınıfın nesnesini iletinGLEventListener.
BasicFrame basicframe = newBasic Frame( );// class which implements
GLEventListener interface
glcanvas.addGLEventListener( basicframe );
(e) Javax.media.opengl.awt.AWTGLAutoDrawable'dan GLCanvas tarafından devralınan setSize () yöntemini kullanarak çerçeve boyutunu ayarlayın.
glcanvas.setSize( 400, 400 );
Şimdi hazırsın GLCanvas.
Adım3: Çerçevenin Oluşturulması
Çerçeveyi, Frame class JSE AWT çerçeve bileşeninin nesnesi.
Kanvas ekleyin ve çerçeveyi görünür hale getirin.
//creating frame
final Frame frame = new frame( " Basic Frame" );
//adding canvas to frame
frame.add( glcanvas );
frame.setVisible( true );
4. Adım: Çerçeveyi Tam Ekranda Görüntüleme
Çerçeveyi tam ekranda görüntülemek için varsayılan ekran boyutunu kullanın java.awt.Toolkitsınıf. Şimdi, bu varsayılan ekran boyutu boyutlarını kullanarak çerçeve boyutunu ayarlayın.setSize() yöntem.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize.width, screenSize.height);
AWT'yi kullanarak temel çerçeveyi oluşturmak için programı inceleyelim -
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);
}
}
Yukarıdaki programı derler ve çalıştırırsanız, aşağıdaki çıktı üretilir. Kullandığımızda oluşan temel bir çerçeveyi gösterir.GLCanvas AWT ile sınıf -