Ok, I did it (thanks) but now all the spheres have same colours.
private float lightAmb[] = {0.7f, 0.7f, 0.7f, 1.0f}; // Ambient Light
private float lightPos[] = {4.0f, 4.0f, 6.0f, 1.0f}; // Light Position
private float lightDif[] = {1.0f, 1.0f, 1.0f, 1.0f}; // Diffuse Light
public void init(GLDrawable drawable) {
gl.glShadeModel(GL.GL_SMOOTH); // Enable Smooth Shading
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black Background
gl.glClearDepth(1.0f); // Depth Buffer Setup
gl.glEnable(GL.GL_DEPTH_TEST); // Enables Depth Testing
gl.glDepthFunc(GL.GL_LEQUAL); // The Type Of Depth Testing To Do
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
gl.glLightfv(GL.GL_LIGHT0, GL.GL_AMBIENT, lightAmb); // Set The Ambient Lighting
gl.glLightfv(GL.GL_LIGHT0, GL.GL_DIFFUSE, lightDif); // Set The Diffuse Lighting
gl.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, lightPos); // Set The Position For Light0
gl.glEnable(GL.GL_LIGHT0); // Enable Light 0
gl.glEnable(GL.GL_LIGHTING); // Enable Lighting
...
}
public void display(GLDrawable arg0) {
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity(); // Reset The View
RGB color = model.getRgb();
gl.glTranslatef(centerPoint.getX(), centerPoint.getY(), -5.0f);
gl.glColor3f(color.getRed(),color.getGreen(),color.getBlue());
glu.gluSphere(quadric, 1.3f, 32, 32);
}