[SOLVED] [LWJGL] Trouble with Display Lists

Hi there,

Today i’ve started with writing a little “engine” for drawing simple figures (triangles, quads, etc.).
I use DisplayLists cause of the lower cpu usage, but now here is my problem:
I generate the Objects in an own class, but if i draw them they don’t appear.

Here are the Sources:

IFigure.java


package com.engine.objects;

/**
 *
 * @author penguin
 */
public interface IFigure {
    public int getObjectList();
}

Triangle.java


package com.engine.objects;

/**
 *
 * @author penguin
 */
import org.lwjgl.opengl.GL11;

public class Triangle implements IFigure {
    private Vertex[] Vertices;
    private int DisplayList;
    public Triangle(Vertex p1, Vertex p2, Vertex p3) {
        Vertices = new Vertex[3];
        Vertices[0] = p1;
        Vertices[1] = p2;
        Vertices[2] = p3;
        DisplayList = GL11.glGenLists(1);
        this.genObject();
    }

    private void genObject()
    {
        /*GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
        GL11.glLoadIdentity();*/
        GL11.glNewList(DisplayList, GL11.GL_COMPILE);

        GL11.glBegin(GL11.GL_TRIANGLES);
            for (int i = 0; i < Vertices.length; i++) {
                if(Vertices[i].isTextureAvailable())
                    Vertices[i].bindTexture();

                GL11.glVertex3f(Vertices[i].getX(), Vertices[i].getY(), Vertices[i].getZ());

                if(Vertices[i].isColorAvailable())
                    GL11.glColor3f(Vertices[i].getRed(), Vertices[i].getGreen(), Vertices[i].getBlue());

                if(Vertices[i].isMappingAvailable() && Vertices[i].isTextureAvailable())
                    GL11.glTexCoord2f(Vertices[i].getU(), Vertices[i].getV());
          GL11.glEnd();
          GL11.glEndList();
        }
    }
    public int getObjectList()
    {
        return DisplayList;
    }
}

Vertex.java


package com.engine.objects;

/**
 *
 * @author penguin
 */
import org.lwjgl.util.vector.Vector3f;
import org.lwjgl.util.vector.Vector2f;
import org.newdawn.slick.opengl.Texture;

public class Vertex {
    private Vector3f Coordinates;
    private Vector3f Color;
    private Vector2f MappingCoordinates;
    private Texture theTexture;

    public Vertex(Vector3f coordinates, Vector3f color, Vector2f mappingcoordinates, Texture thetexture)
    {
        Coordinates = coordinates;
        Color = color;
        MappingCoordinates = mappingcoordinates;
        theTexture = thetexture;
    }

    public boolean isColorAvailable() {
        if(Color != null)
            return true;
        else
            return false;
    }
    public boolean isMappingAvailable()
    {
        if(MappingCoordinates != null)
            return true;
        else
            return false;
    }
    public boolean isTextureAvailable()
    {
        if(theTexture != null)
            return true;
        else
            return false;
    }

    public void bindTexture()
    {
        theTexture.bind();
    }

    public float getX()
    {
        return Coordinates.x;
    }
    public float getY()
    {
        return Coordinates.y;
    }
    public float getZ()
    {
        return Coordinates.z;
    }
    public float getU()
    {
        return MappingCoordinates.x;
    }
    public float getV()
    {
        return MappingCoordinates.y;
    }
    public float getRed()
    {
        return Color.x;
    }
    public float getGreen()
    {
        return Color.y;
    }
    public float getBlue()
    {
        return Color.z;
    }
}

EngineTest.java (MainClass)


package com;

/**
 *
 * @author penguin
 */
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import java.nio.FloatBuffer;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import org.lwjgl.util.glu.GLU;
import com.engine.objects.*;
import org.lwjgl.util.vector.Vector3f;

public class EngineTest {
      public static void main(String[] args) {

          try {
              Display.setDisplayMode(new DisplayMode(800,600));
              Display.create();
          } catch (Exception e) {

          }
          // Render Simple Triangle
          initGL();

          //WorldObject myObject = new WorldObject();
          Triangle myTriangle = new Triangle(new Vertex(new Vector3f(1.0f,2.0f,1.0f),null,null,null),new Vertex(new Vector3f(1.0f,-1.0f,1.0f),null,null,null),new Vertex(new Vector3f(-1.0f,-1.0f,1.0f),null,null,null));
          //myObject.addFigure(myTriangle);
          while(!Display.isCloseRequested())
          {
              GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
              GL11.glLoadIdentity();
              GL11.glTranslatef(0.0f,0.0f,-10.0f);

              GL11.glCallList(myTriangle.getObjectList());

              Display.update();
          }

          Display.destroy();

      }


      private static void initGL() {
        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        GLU.gluPerspective(45.0f,((float)800)/((float)600),0.1f,100.0f);
        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glLoadIdentity();

        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glShadeModel(GL11.GL_SMOOTH);
        GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        GL11.glClearDepth(1.0f);
        GL11.glEnable(GL11.GL_DEPTH_TEST);
        GL11.glDepthFunc(GL11.GL_LEQUAL);
        GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
  }
}

I’m new to OpenGL and hope someone can help me cause i don’t know where the mistake can be.