Solved, I copy here for other ppl, it was hard to find a simple example (just one array, no interleaved) that show the basics
//init
...
initVertexArray(gl);
int[] bufferID = new int[1];
gl.glGenBuffers(1, bufferID, 0);
vertexPointBufferID = bufferID[0];
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, vertexPointBufferID);
gl.glBufferData(GL2.GL_ARRAY_BUFFER, triangleNumber*3*3*4, vertexData, L2.GL_STATIC_DRAW);
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, 0);
...
// display
...
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, vertexPointBufferID);
gl.glVertexPointer(3, GL2.GL_FLOAT, 0, 0);
gl.glEnableClientState(GL2.GL_VERTEX_ARRAY);
gl.glDrawArrays(GL2.GL_TRIANGLES, 0, triangleNumber*3);
gl.glDisableClientState(GL2.GL_VERTEX_ARRAY);
...
private void initVertexArray(GL2 gl) {
vertexData = GLBuffers.newDirectFloatBuffer(triangleNumber*3*3);
for(int i=0; i<triangleNumber; i++) {
Triangle tmp = triangleArray.get(i);
vertexData.put(new float[]{tmp.x1/12000.0f, tmp.y1/12000.0f, tmp.z1/12000.0f,
tmp.x2/12000.0f, tmp.y2/12000.0f, tmp.z2/12000.0f,
tmp.x3/12000.0f, tmp.y3/12000.0f, tmp.z3/12000.0f });
}
vertexData.flip();