import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.media.opengl.GL; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCanvas; import javax.media.opengl.GLCapabilities; import javax.media.opengl.GLEventListener; import javax.media.opengl.GLJPanel; import javax.media.opengl.glu.GLU; import javax.swing.JFrame; import java.lang.Math; import com.sun.opengl.util.GLUT; public class Cube // extends glskeleton// implements GLEventListener// , KeyListener // { private GLU glu; private GLUT glut; public Cube() { } public static void main(String[] args) { GLCapabilities caps = new GLCapabilities(); GLJPanel canvas = new GLJPanel(caps); Cube demo = new Cube(); canvas.addGLEventListener(demo); demo.setCanvas(canvas); demo.setDefaultListeners(demo); JFrame frame = new JFrame("Cube"); frame.setSize(500, 500); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(canvas); frame.setVisible(true); canvas.requestFocusInWindow(); } public void init(GLAutoDrawable drawable) { GL gl = drawable.getGL(); glu = new GLU(); glut = new GLUT(); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glShadeModel(GL.GL_FLAT); } public void display(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); glut.glutWireCube(1.0f); gl.glFlush(); } public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { GL gl = drawable.getGL(); gl.glViewport(0, 0, w, h); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); //change the parameters to see the effect // gl.glFrustum(5.0,-5.0,//left and right // 5.0,-5.0,//top and bottom // 1.0,5.0);//near and far //change the parameters to see the effect // glu.gluPerspective(120,//angle of x-z plane // w/h,//aspect of width and height // 1,5);//near and far //change the parameters to see the effect gl.glOrtho(1.0,-1.0,//left and right 1.0,-1.0,//top and bottom 1.0,5.0);//near and far glu.gluLookAt(1,2,3, 0,0,0, 0,1,0); } public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { } public void keyTyped(KeyEvent arg0) { } public void keyPressed(KeyEvent key) { switch (key.getKeyCode()) { case KeyEvent.VK_ESCAPE: super.runExit(); default: break; } } public void keyReleased(KeyEvent arg0) { } }