以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 Java/Eclipse 』 (http://bbs.xml.org.cn/list.asp?boardid=41) ---- 有个问题请教jogl的 (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=46542) |
-- 作者:wuodao -- 发布时间:5/7/2007 10:52:00 PM -- 有个问题请教jogl的 运行有错,不是很明白初学,请高手帮忙谢! import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; //import net.java.games.jogl.*; import javax.media.opengl.*; import com.sun.opengl.util.*; public class SecondJoglApp extends JFrame { public static void main(String[] args) { final SecondJoglApp app = new SecondJoglApp(); SwingUtilities.invokeLater ( new Runnable() { public void run() { app.setVisible(true); } } ); } public SecondJoglApp() { //设置JFrame标题 super("Second JOGL Application"); //当JFrame关闭的时候,结束进程 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //只有三行JOGL代码 ... 如下 GLCapabilities glcaps = new GLCapabilities(); GLCanvas glcanvas = GLDrawableFactory.getFactory().createGLCanvas(glcaps); glcanvas.addGLEventListener(new SecondGLEventListener()); //像其它组件一样把GLCanvas加入 getContentPane().add(glcanvas, BorderLayout.CENTER); setSize(500, 300); //使JFrame显示在屏幕中央 centerWindow(this); } public void centerWindow(Component frame) { Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.width > screenSize.width ) frameSize.width = screenSize.width; if (frameSize.height > screenSize.height) frameSize.height = screenSize.height; frame.setLocation ((screenSize.width - frameSize.width ) >> 1, (screenSize.height - frameSize.height) >> 1); } } |
-- 作者:wuodao -- 发布时间:5/7/2007 10:53:00 PM -- 还一个一起的,大家应该见过的例子 import java.awt.*; import java.awt.event.*; import javax.swing.*; //import net.java.games.jogl.*; import javax.media.opengl.*; public class SecondGLEventListener implements GLEventListener { //注意这里的初始化。 public void init(GLDrawable gld) { GL gl = gld.getGL(); GLU glu = gld.getGLU(); gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); gl.glViewport(0, 0, 500, 300); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); glu.gluOrtho2D(0.0, 500.0, 0.0, 300.0); } //注意这里的绘图。 public void display(GLDrawable drawable) { float red = 0.0f; float green = 0.0f; float blue = 0.0f; GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glPointSize(5.0f); for (int i=0; i<50; i++) { red -= .09f; green -= .12f; blue -= .15f; if (red < 0.15) red = 1.0f; if (green < 0.15) green = 1.0f; if (blue < 0.15) blue = 1.0f; gl.glColor3f(red, green, blue); gl.glBegin(GL.GL_POINTS); gl.glVertex2i((i*10), 150); gl.glEnd(); } } public void reshape(GLDrawable drawable,int x,int y,int width,int height) { } public void displayChanged(GLDrawable drawable,boolean modeChanged,boolean deviceChanged) { } } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
35.156ms |