Hola:
En la API tienes qué significa el parámetro
http://java.sun.com/javase/6/docs/ap...awt/Color.html que no es más que un rgb en un solo entero.
No necesitas hacer new si vas a usar directamente Color.BLUE, te vale Color c = Color.BLUE o pasar directemente Color.BLUE como parámetro en setForeground() o setBackground().
No tengo muy claro por qué te muestra el color y luego te lo cambia, pero ten en cuenta que el JFrame tiene un contenedor getContentPane() que puede ser otro componente que también tiene su setForeground() y setBackground() y que ahí estás metiendo un JLabel que también tiene estas dos propiedades.
Lo más seguro es que al JLabel le pongas los colores que quieras y para que te haga caso con el background, llames además a su setOpaque(true). Puedes, de todas formas, hacer pruebas con ventana.getContentPane().setBackground(....).
Se bueno.