L'ajout d'une image d'arrière-plan à un Composite

Je suis en train de créer un jeu en Java. Pour le plateau de jeu lui-même, j'essayais de placer l'image du conseil de l'arrière-plan de l'ensemble Composite, qui remplit la JFrame. J'ai trouvé une façon de le faire, mais seulement avec le fichier stocké localement, il doit être en mesure de prendre l'image de l'emballage et de l'interface graphique qui est à l'intérieur ainsi.

package Gui;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

//Proof of concept for setting an image as background of JPanel

public class JBackgroundPanel extends JPanel {
    private BufferedImage img;

    public JBackgroundPanel() {
        //load the background image
        try {
            img = ImageIO.read(new File(
                    "C:\\Users\\Matthew\\Desktop\x5     Grid.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        //paint the background image and scale it to fill the entire space
        g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
    }
}

J'ai lu que l'utilisation de ImageIcon est une bonne correction, mais je ne sais pas comment l'utiliser correctement.

Edition 1 - j'ai trouvé ma réponse ici
http://www.coderanch.com/how-to/java/BackgroundImageOnJPanel
J'ai également eu l'image formatée mal dans mon espace de travail. Merci pour l'aide

  • Vous aurez envie de chercher sur ce site, comme cela a été demandé à beaucoup. si vous êtes à la recherche pour accéder à une image à partir d'un fichier jar, alors vous aurez envie de le faire comme une ressource, c'est à dire, ImageIO.read(getClass().getResourceAsStream(resourcePath)); Les ressources chemin sera par rapport à vos fichiers de classe.
  • Remarque: ImageIcon n'est pas une "bonne correction".
InformationsquelleAutor Matthew G | 2013-03-29