Problem bei JOGL-Tutorial

TobyNick

Grünschnabel
Hallo,
ich mache gerade ein JOGL-Tutorial mit einem Buch und zwar "Foundations of 3D Graphics Programming: Using JOGL and Java3D" von Jim X. Chen (http://www.amazon.de/gp/product/1848002831/ref=sib_rdr_dp)

und habe ein Problem.
Und zwar funktioniert gleich das erste Beispiel nicht, dass diesen Quelltext hat:

Code:
import java.awt.*;
import javax.media.opengl.*;

public class J1_0_Point extends Frame implements GLEventListener 
{
	static int HEIGHT = 600, WIDTH = 600;
	static GL gl;
	static GLCanvas canvas;
	static GLCapabilities capabilities;
	
	public J1_0_Point()
	{
		capabilities = new GLCapabilities();
		canvas = new GLCanvas();
		
		canvas.addGLEventListener(this);
		
		add(canvas, BorderLayout.CENTER);
		
		gl = canvas.getGL();
	}
	
	public static void main(String[] args)
	{
		J1_0_Point frame = new J1_0_Point();
		
		frame.setSize(WIDTH, HEIGHT);
		frame.setVisible(true);
	}

	@Override
	public void display(GLAutoDrawable arg0) 
	{
		gl.glBegin(GL.GL_POINTS);
			gl.glVertex2i(WIDTH/2, HEIGHT/2);
		gl.glEnd();
	}

	@Override
	public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) 
	{
	}

	@Override
	public void init(GLAutoDrawable arg0) 
	{
		gl.glColor3f(1.0f, 0, 0);
	}

	@Override
	public void reshape(GLAutoDrawable arg0, int x, int y, int width,
			int height) 
	{
		WIDTH = width;
		HEIGHT = height;
		
		gl.glMatrixMode(GL.GL_PROJECTION);
		gl.glLoadIdentity();
		gl.glOrtho(0, width, 0, height, -1.0, 1.0);
	}
}

Dieses Programm soll ein schwarzen Bildschirm anzeigen (normal ist der ja schwarz) und einen roten Punkt inner Mitte.
Das Problem ist jetzt, dass man ganz, ganz kurz das sieht, aber dann wechselt der Hintergrund und es wird die Hintergrundfarbe des Frame oder des Canvas angezeigt (und zwar weiß) ... und nur wenn ich die Größe des Frames auf eine bestimmte Größe skaliere, zeigt er den roten Punkt an (auf schwarzem Hintergrund)...aber auch nicht bei jeder beliebigen verstellten größe.
Das ist voll komisch.
Kann mir das jemand erklären.

Danke im Vorraus ;-)
 

Neue Beiträge

Zurück