Création
d'entreprise
Posez votre question Signaler

[JAVA] Insérer une image de fond [Résolu]

jebok 371Messages postés 16 mai 2005Date d'inscription - Dernière réponse le 4 sept. 2011 à 16:58
Bonjour,
comment afficher une image de fond (image au format gif existant sur mon disque dur) dans un JPanel ou une JFrame ?

Merci de votre aide
Lire la suite 

[JAVA] Insérer une image de fond »

10 réponses
Réponse
+29
moins plus
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

/*
 * Created on Jul 19, 2005
 *
 */

/**
 * @author Fery.P
 *
 */
public class ImageFond extends JFrame {
	private Container c;
	private JPanel imagePanel;
	private String filePath;

	public ImageFond(String filePath) {
		super("Image de fond");
		this.filePath = filePath;
		initialize();
	}

	private void initialize() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		c = getContentPane();
		imagePanel = new JPanel() {
			public void paint(Graphics g) {
				try {
					BufferedImage image = ImageIO.read(new File(filePath));
					g.drawImage(image, 0, 0, null);
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		};
		imagePanel.setPreferredSize(new Dimension(640, 480));
		c.add(imagePanel);
	}

	public static void main(String[] args) {
		String imagePath = "C:/bellucci.jpg";
		ImageFond fond = new ImageFond(imagePath);
		fond.pack();
		fond.setVisible(true);
	}
}


Le mieux étant de créer une classe séparée qui étend JPanel et qui reprend le code du JPanel de la classe ci-dessus.

;-)
HackTrack
jebok- 19 juil. 2005 à 15:00
merci, ca fonctionne.

Mais comment faire pour supprimer cette image par la suite ?

merci
Ajouter un commentaire
Réponse
+2
moins plus
Normalement, tu auras d'autre graphiques dessinés par dessus ton image dans le JPanel , si j'ai bien compris. Donc, à chaque fois que la méthode paint() du JPanel sera appeleée pour redessinner le contenu du JPanel, tu pourrais tester si il faut ou non dessinner l'image de fond.

Pourquoi ne pas créer un attribut boolean dans la classe qui signale si l'image de fond doit être dessinée ou pas?
Ajouter un commentaire
Réponse
+2
moins plus
J'ai essayé le code indiqué plus haut il marche très bien mais il fait tout ramer. Y aurait il une solution ou un moyen moins gourmand?
Ajouter un commentaire
Réponse
+0
moins plus
Je suis novice dans le Java,

Le code marche à la perfection sauf que je n'arrive pas à l'incorporer dans mon propres code, j'ai 2 fichiers Menu et MenuFenetre, et bien sur quand j'ajoute ce code il me fait un deuxième main.

Comment l'incorporer dans mon main?

Cordialement
siwar_- 7 avril 2008 à 13:00
salut je viens de voir ta réponse et j'ai le même problème
si t'es arrivé à le résoudre s'il te plait tu peut me dire comment tu la fait, c'est trés urgent!
merci
Ajouter un commentaire
Réponse
+0
moins plus
bonjour .
je vais faire un jeu;je doit inserer ++ images.et lorsque je clique avec ma souris je enleve cette images.comment je doit faire
Ajouter un commentaire
Réponse
-6
moins plus
bonjour je voudrais inserer une image dans une autre
exemple:je voudrais fair une blaague a une copine et dire que j ai rencontrer madone pouvez vous l aider svp si vous ne savez pas ce n est pas grave
gros bisou et a tres vite
zz10 - 19 févr. 2008 à 21:27
no comment
Personne - 4 sept. 2011 à 16:58
Plus de trois ans après ça fait toujours rire !!! xD
Ajouter un commentaire
Ce document intitulé « [JAVA] Insérer une image de fond » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?