2012-03-11 15 views
0

私はちょうど JOGLを勉強し始めましたが、1つの問題があります。JOGL - 作業中の色がありません

以下は2つの方法の簡単な実装です GLEventListener

@Override 
public void init(GLDrawable glDrawable) { 

    GL gl = glDrawable.getGL(); 
    GLU glu = glDrawable.getGLU(); 

    gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 

    glu.gluOrtho2D(0.0, 600.0, 0.0, 500.0); 

} 

@Override 
public void display(GLDrawable glDrawable) { 

    GL gl = glDrawable.getGL(); 
    gl.glPointSize(100.0f); 

    gl.glColor3f(0.0f, 1.0f, 0.0f); 
    gl.glBegin(GL.GL_POINTS); 
    gl.glVertex2i(300, 250); 
    gl.glEnd(); 

    gl.glEnd(); 

} 

これは、JFrameウィンドウにコンポーネントを挿入する方法です。

package scribble; 

import net.java.games.jogl.GLCanvas; 
import net.java.games.jogl.GLCapabilities; 
import net.java.games.jogl.GLDrawableFactory; 
import javax.swing.*; 
import java.awt.*; 

public class ScribbleComponent extends JFrame { 

    public static void main(String[] args) { 
     ScribbleComponent component = new ScribbleComponent(); 
     ScribbleRunnable runnable = new ScribbleRunnable(component); 
     SwingUtilities.invokeLater(runnable); 
    } 

    public ScribbleComponent() { 
     super("Scribble"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     GLCapabilities glCapabilities = new GLCapabilities(); 
     GLCanvas glCanvas = GLDrawableFactory.getFactory().createGLCanvas(glCapabilities); 
     glCanvas.addGLEventListener(new ScribbleListener()); 
     getContentPane().add(glCanvas, BorderLayout.CENTER); 
     getContentPane().add(new JButton("Clear Screen"), BorderLayout.SOUTH); 
     setSize(600, 500); 
     ScribbleHelper.centerWindow(this); 
    } 

} 

ScribbleRunnable(成分)コンポーネントが可視となります。

ScribbleHelper.centerWindow(this) JFrameウィンドウのちょうど中央に配置。

私は白い背景に緑色の正方形が見えます。

最初のコンピュータでは正常に動作しますが、2番目のコンピュータでは黒い背景に暗い赤色の四角形が表示されます。それはいつも起こる、私は他の色を設定することはできません。

両方のコンピュータは、JDK 1.6と同じライブラリを使用してWindows 7を実行しています。

どこが問題なのですか?

答えて

0

display()メソッドを常に更新するには、com.jogamp.opengl.util.FPSAnimatorを実装する必要があります。その後、それを見てください。

gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT)も使用してください。あなたはきれいに表示するために。

関連する問題