¿Por qué es que las ventanas no cian como se esperaba?
El problema aquí es que el área donde se muestra el contenido del JFrame
es realmente el "panel de contenido", y no el contenido del JFrame
en sí.
Por lo tanto, la siguiente línea:
mainFrame.setBackground(Color.CYAN);
¿Está cambiando el color de la JFrame
, pero que no es en realidad la parte que es inmediatamente visible cuando se muestra el JFrame
.
Lo que se necesita es cambiar el color de lo que se llama el "contenido del panel * (consulte How to Use Root Panes para una ilustración), cambiando la línea anterior a las siguientes: Marcos
mainFrame.getContentPane().setBackground(Color.CYAN);
Uso de oscilación podría ser sorprendentemente poco intuitivo al principio, por lo que recomiendo encarecidamente echar un vistazo a los recursos que he enumerado en la parte inferior de esta respuesta.
¿existe una diferencia entre Color.CYAN
y Color.cyan
?
No, no hay diferencia entre los dos: ambas son constantes en la clase Color
que son los objetos Color
. La única diferencia está en los nombres de las constantes. se introdujeron
Las constantes con nombres minúsculas cuando se introdujo la clase Color
(que parece ser JDK 1.0, ya que no hay "Desde" notación en la Especificación API Java para la clase Color
), y los nombres en mayúsculas se añadieron más adelante en JDK 1.4.
Probablemente se añadieron la adición de las constantes en mayúsculas llamado para que los nombres de constantes en la clase Color
consistente con la Code Conventions for the Java Programming Language que a Section 9: Naming Conventions estado que deben ser constantes en todas las letras en mayúsculas.
Recursos
Para obtener más información sobre el uso de marcos, los siguientes recursos del The Java Tutorials sería de interés:
Sobre constantes de color de mayúsculas y camal, sí, eso es lo que pensaba. Pero si no hay diferencia, ¿por qué existen por duplicado? –
creo que los nombres de los camelcase están allí primero, no estoy del todo seguro, pero creo que fue solo un caso de no cumplir con los estándares de nomenclatura de Sun, por lo que agregaron los que están correctamente en mayúscula para que se ajusten al estándar. - y, por supuesto, no querían eliminar los camelcas porque eso rompería los programas existentes. – MeBigFatGuy