[JAVA] Insérer une image de fond

Résolu
jebok Messages postés 371 Date d'inscription   Statut Membre -  
 hind -
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
Configuration: sdk 1.4.2

6 réponses

  1. Utilisateur anonyme
     
    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
    41
    1. jebok Messages postés 371 Date d'inscription   Statut Membre 51
       
      merci, ca fonctionne.

      Mais comment faire pour supprimer cette image par la suite ?

      merci
      0
  2. Bankette
     
    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?
    3
  3. Utilisateur anonyme
     
    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?
    2
  4. twistakarima Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
    2
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Homy
     
    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
    1
    1. siwar_ Messages postés 4 Statut Membre 3
       
      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
      0
      1. hind > siwar_ Messages postés 4 Statut Membre
         
        svp comment jepeux inserer une image dans un programme Java merci :)
        0
  7. VaneSsa
     
    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
    -6
    1. zz10
       
      no comment
      0
    2. Personne
       
      Plus de trois ans après ça fait toujours rire !!! xD
      0