JOGL - ผ้าใบพร้อม AWT
บทนี้จะอธิบายวิธีการวาดเฟรมพื้นฐาน JOGL โดยใช้ Canvas กับเฟรม AWT ที่นี่เราจะสร้าง AWT Frame และเพิ่มวัตถุผ้าใบลงในเฟรม AWT โดยใช้ไฟล์add() วิธีการของคลาสเฟรม
ด้านล่างนี้เป็นขั้นตอนในการเขียนโปรแกรมที่สร้างเฟรมพื้นฐาน JOGL โดยใช้คลาส Canvas ของ JOGL และคลาส Frame ของ AWT ร่วมกัน
ขั้นตอนที่ 1: การสร้างคลาส
เริ่มต้นสร้างคลาสที่ดำเนินการ GlEventListenerอินเทอร์เฟซและนำเข้าแพ็คเกจ javax.media.opengl ใช้ทั้งสี่วิธีdisplay(), dispose(), reshape(), init().เนื่องจากนี่เป็นเฟรมพื้นฐานจึงมีการพูดถึงงานดั้งเดิมเช่นการสร้างคลาสผ้าใบ ทั้งหมดGLEVentListener วิธีการเชื่อมต่อถูกปล่อยทิ้งไว้โดยไม่ได้ใช้งาน
ขั้นตอนที่ 2: การเตรียมผ้าใบ
(a) การสร้างไฟล์ GLCanvas คลาสวัตถุ
final GLCanvas glcanvas = new GLCanvas( xxxxxxx );
//here capabilities obj should be passed as parameter
(b) การสร้าง GLCapabilities ชั้นเรียน
GLCapabilities capabilities = new GLCapabilities( xxxxx );
//here profile obj should be passed as parameter
(c) กำลังสร้าง GLProfile วัตถุ
เนื่องจากเป็นวิธีการแบบคงที่จึงเรียกใช้โดยใช้ชื่อคลาส เนื่องจากบทช่วยสอนนี้เกี่ยวกับ JOGL2 ให้เราสร้างวัตถุอินเตอร์เฟส GL2
final GLProfile profile = GLProfile.get( GLProfile.GL2 );
// both, variable and method are static hence both are called using class name.
ให้เราดูข้อมูลโค้ดสำหรับแคนวาส
//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) ตอนนี้เพิ่ม GLEventListener ลงบนผืนผ้าใบโดยใช้วิธีการ addGLEventListener(). วิธีนี้ต้องการวัตถุGLEventListenerอินเทอร์เฟซเป็นพารามิเตอร์ ดังนั้นส่งผ่านวัตถุของคลาสที่ดำเนินการGLEventListener.
BasicFrame basicframe = newBasic Frame( );// class which implements
GLEventListener interface
glcanvas.addGLEventListener( basicframe );
(e) กำหนดขนาดของเฟรมโดยใช้เมธอด setSize () ที่ GLCanvas สืบทอดมาจาก javax.media.opengl.awt.AWTGLAutoDrawable
glcanvas.setSize( 400, 400 );
ตอนนี้คุณพร้อมแล้วกับ GLCanvas.
ขั้นตอนที่ 3: การสร้างเฟรม
สร้างเฟรมโดยสร้างอินสแตนซ์ไฟล์ Frame คลาส Object ของส่วนประกอบเฟรม JSE AWT
เพิ่มผืนผ้าใบลงไปและทำให้มองเห็นกรอบได้
//creating frame
final Frame frame = new frame( " Basic Frame" );
//adding canvas to frame
frame.add( glcanvas );
frame.setVisible( true );
ขั้นตอนที่ 4: การดูเฟรมแบบเต็มหน้าจอ
หากต้องการดูเฟรมแบบเต็มหน้าจอให้ใช้ขนาดหน้าจอเริ่มต้นโดยใช้ java.awt.Toolkitชั้นเรียน ตอนนี้ใช้ขนาดขนาดหน้าจอเริ่มต้นตั้งค่าขนาดเฟรมโดยใช้setSize() วิธี.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize.width, screenSize.height);
ให้เราผ่านโปรแกรมเพื่อสร้างเฟรมพื้นฐานโดยใช้ 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);
}
}
หากคุณคอมไพล์และรันโปรแกรมข้างต้นผลลัพธ์ต่อไปนี้จะถูกสร้างขึ้น มันแสดงเฟรมพื้นฐานที่เกิดขึ้นเมื่อเราใช้GLCanvas คลาสกับ AWT -