Solución:
getContentPane().setBackground(Color.YELLOW);
Esta línea de código es difícil de entender y el tutor sentará las bases para que la comprenda completamente a medida que continúe estudiando Java. Lo primero a considerar es la regla sobre la modificación de un objeto con un método. En el lado izquierdo de un período es un objeto, y el método que modifica el objeto está en el lado derecho de la período. Esa regla se aplica aquí.
A envase tiene varias capas. Puede pensar en una capa como una película transparente que se superpone envase. En Java Swing, la capa que se usa para contener objetos se llama panel de contenido. Los objetos se agregan a la capa del panel de contenido del contenedor. los getContentPane()
El método recupera la capa del panel de contenido para que pueda agregarle un objeto. El panel de contenido es un objeto creado por el entorno de ejecución de Java. No es necesario que conozca el nombre del panel de contenido para usarlo. Cuando usas getContentPane()
, el objeto del panel de contenido se sustituye allí para que pueda aplicarle un método. En esta línea de código, no estamos agregando un objeto al panel de contenido. Más bien, estamos haciendo que el color del panel de contenido sea amarillo. Esta línea de código es lo que cambia el color predeterminado, blanco, a amarillo, y es posible que recuerde haber visto el rectángulo amarillo en el ejemplo del programa que se ejecuta en un navegador. Esta línea de código es lo que hizo que el área rectangular sea amarilla.
Una forma de pensar en esto es pensar que el objeto del panel de contenido se sustituye por el método getContentPane (), como esto:
contentpaneobject.setBackground(Color.YELLOW);
Aunque en realidad nunca ves lo anterior declaración, tienes la funcionalidad del declaración. Cuando recuperas el panel de contenido con el getContentPane()
método, puede modificar el objeto del panel de contenido, que se denomina arbitrariamente contentpaneobject en el ejemplo anterior. En esta declaración, la modificación es cambiar el color del panel de contenido. Ese paso se presenta a continuación en el tutor.
Note la forma de getContentPane()
como un método. El método comienza con una letra minúscula y tiene paréntesis. Los paréntesis están vacíos.
Si el código es parte de un JFrame
subclase, deberías usar getContentPane()
. Si el código no es parte del marco (quizás esté en el static main()
método para la aplicación), entonces necesita usar un JFrame
objeto para llamar getContentPane()
; eso es lo que frame.getContentPane()
lo hace.
Ejemplos:
public class TestApp extends JFrame {
public static void main(String[] args) {
TestApp frame = new TestApp();
Container c = frame.getContentPane();
// do something with c
frame.pack();
frame.show();
}
/* constructor */
public TestApp() {
Container c = getContentPane(); // same as this.getContentPane()
// initialize contents of frame
}
}
Bueno, podría dirigir a la api:
Devuelve el objeto contentPane para este marco.
Todo es parte del proceso de inicialización de la interfaz gráfica de usuario. El protocolo de Java realmente, es cierto que es un texto estándar para activar su GUI:
public class FlowLayoutExample extends JApplet {
public void init () {
getContentPane().setLayout(new FlowLayout ());
getContentPane().add(new JButton("One"));
getContentPane().add(new JButton("Two"));
getContentPane().add(new JButton("Three"));
getContentPane().add(new JButton("Four"));
getContentPane().add(new JButton("Five"));
getContentPane().add(new JButton("Six"));
}
}
-Fuente
Pero esencialmente, obtenemos la capa del panel de contenido para que luego pueda agregarle un objeto. Vea esto para más detalles.