Solución:
La respuesta variará ligeramente dependiendo de si la aplicación o el subprograma utilizan AWT o Swing.
(Básicamente, las clases que comienzan con J
tal como JApplet
y JFrame
son Swing, y Applet
y Frame
son AWT.)
En cualquier caso, los pasos básicos serían:
- Dibujar o cargar una imagen en un
Image
objeto. - Dibuja la imagen de fondo en el evento de pintura del
Component
desea dibujar el fondo.
Paso 1. La carga de la imagen puede realizarse mediante el Toolkit
clase o por el ImageIO
clase.
los Toolkit.createImage
El método se puede utilizar para cargar un Image
desde una ubicación especificada en un String
:
Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");
Similar, ImageIO
puede ser usado:
Image img = ImageIO.read(new File("background.jpg");
Paso 2. El método de pintura para el Component
que debería obtener el fondo, deberá anularse y pintar el Image
sobre el componente.
Para AWT, el método para anular es el paint
método, y utilice el drawImage
método del Graphics
objeto que se entrega en el paint
método:
public void paint(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
Para Swing, el método para anular es el paintComponent
método del JComponent
y dibuja el Image
al igual que con lo que se hizo en AWT.
public void paintComponent(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
Ejemplo de componente simple
Aquí está un Panel
que carga un archivo de imagen cuando se crea una instancia y dibuja esa imagen sobre sí mismo:
class BackgroundPanel extends Panel
{
// The Image to store the background image in.
Image img;
public BackgroundPanel()
{
// Loads the background image and stores in img object.
img = Toolkit.getDefaultToolkit().createImage("background.jpg");
}
public void paint(Graphics g)
{
// Draws the img to the BackgroundPanel.
g.drawImage(img, 0, 0, null);
}
}
Para obtener más información sobre la pintura:
- Pintura en AWT y Swing
- Lección: Realizar pintura personalizada de los tutoriales de Java puede ser de ayuda.