Image dans Swing

Résolu
nitarak Messages postés 17 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 19 juin 2021 - Modifié le 21 janv. 2021 à 21:26
nitarak Messages postés 17 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 19 juin 2021 - 22 janv. 2021 à 20:16
J'aimerai bien afficher une image sur JFrame mais je ne sais pas pourquoi mon code ne fonctionne pas
La c est mon classe Dessin
package dessin;
import java.awt.*;
import javax.swing.*;
import java.lang.*;
import java.util.*;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.net.URL;

public class Dessin extends JPanel 
{
 BufferedImage image;

 public Dessin() 
 {
    super();
   }
 public void ImagePanel() throws Exception
 {
  image = ImageIO.read(new File("tourEiffel.jpg"));
  

 }
 public void paintComponent(Graphics g)
 {
  super.paintComponent(g);
  g.drawImage(image, 10, 20, null);
 }
 
}

La c est ma Fenetre
package fenetre;
import dessin.*;
import javax.swing.*;
import java.awt.*;

public class Fenetre extends JFrame
{

 Dessin pic= new Dessin();
 JPanel p= new JPanel();

 public Dessin getPic()
 {
  return pic;
 }

 public Fenetre()
 {
  setTitle("Jeux d'image");
  setSize(1000,500);
  getPic().setPreferredSize(new Dimension(1000,500));
  p.add(getPic());
  //p.setBounds(50,50,50,50);
  //add(p);
  setContentPane(p);
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  pack();
  
  
 }

}

Et la c est mon affichage
package aff;
import fenetre.Fenetre;
import javax.swing.*;  
import java.awt.*;
import java.util.*;
import java.io.IOException;
public class Affichage
{
 public static void main(String[] args)throws Exception
   {  
   Fenetre f=new Fenetre();
   } 

}

Merci d'avance....et j ai vraiment besoin de votre aide.

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 janv. 2021 à 12:33
Salut,

Tu veux une image en fond de ta fenêtre?
public class JBackgroundPanel extends JPanel {

  private Image m_imgBackground;

  public JBackgroundPanel (String fileName) throws IOException {
    m_imgBackground= ImageIO.read(new File(fileName));
  }

  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawImage(m_imgBackground, 0, 0, this);
  }
}
...
JFrame f = new JFrame();
JBackgroundPanel jbp = new JBackgroundPanel ("tourEiffel.jpg");
jbp.setLayout(new BorderLayout()); /* en option par default ContentPane est en borderlayout et JPanel en FlowLayout */
f.setContentPane(jbp);
/* tu peux ajouter des composants dedans */
// f.getContentPane().add(...);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1000,500);
f.setLocationRelativeTo(null);

f.setVisible(true);



Tu veux une image dans un simple composant ?
JLabel image = new JLabel(new ImageIcon("tourEiffel.jpg"));
// apres tu ajoutes simplement le composant

1
nitarak Messages postés 17 Date d'inscription mercredi 6 janvier 2021 Statut Membre Dernière intervention 19 juin 2021
Modifié le 22 janv. 2021 à 20:17
Merci bien de votre reponse....Et oui je veux une image juste dans un simple coposant
0
Rejoignez-nous