Hola,
Código:
public EJEMPLOCOLORES() {
setTitle("**** Bloques de colores. ****");
contenedor.setBackground(Color.red);
} // cierre del constructor
public void paint(Graphics g) {
super.paint(g);
int limit, rojo, verde, azul, alfa;
float s, x, y, ratio;
El método setBackground() debe estar fuera del paint sino AWT no refleja los cambios hasta que sale del método paint (digamos una llamada recursiva). La llamada al método super.paint() hace que se pinten todos lo que le pertenece a AWT y Swing; si no la pones no aparecen los controles ni nada que pinte AWT o Swing.
Saludos,
ps:
getContentPane() devuelve un java.awt.Container, JPanel es un Container también, técnicamente vienen siendo casi lo mismo para pintar en el evento paint().