Wenn Ihre Anwendung eine Schnittstelle GLEventListener implementiert, gibt es immer eine nächste Sequenz:
-init();
-reshape();
-display().
Meiner Meinung nach haben Sie eine falsche Zeichnungsfolge in der Funktionsanzeige().
Versuchen Sie es auf diese Weise:
public void display(GLAutoDrawable drawable) {
gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glColor3f(1.0f, 1.0f, 1.0f);
gl.glBegin(GL.GL_POLYGON);
gl.glVertex2f(-0.5f, -0.5f);
gl.glVertex2f(-0.5f, 0.5f);
gl.glVertex2f(0.5f, 0.5f);
gl.glVertex2f(0.5f, -0.5f);
gl.glEnd();
drawable.swapBuffers(); // — it's for double buffering
}