Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

chargement d'image dans un panel

Aucune réponse
Avatar
guillaume-89
Bonjour,
voici mon problème : je souhaiterais faire une classe AffichageImage pour avoir en sortie un Jpanel avec une image à l'intérieur.
J'ai trouvé quelque part comment chargé une image dans une fenêtre. Voici le code :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ChargerImage
{
public static void main(String[] args)
{
Fenetre fenetre = new Fenetre();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.show();
}
}

class Fenetre extends JFrame
{
public Fenetre()
{
Container leContenant = getContentPane();
leContenant.setLayout(new FlowLayout());

AffichageImage image = new AffichageImage("image.jpg");
leContenant.add(image);
}
}

class AffichageImage extends Canvas
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int largeurEcran = screenSize.width;
int hauteurEcran = screenSize.height;
Image image;

public AffichageImage(String url)
{
image = getToolkit().getImage(url);
prepareImage(image, this);
}

public void paint(Graphics g)
{
g.drawImage(image, 0, 0, this);
}

public boolean imageUpdate(Image image, int info, int x, int y, int l, int h)
{
if ((info & (WIDTH | HEIGHT)) != 0)
{
setSize(l, h);
getParent().getParent().getParent().getParent().setBounds( (largeurEcran - l) / 2, (hauteurEcran - h) / 2, l+8, h+32 );
}

if ((info & (ALLBITS)) != 0)
{
repaint();
return false;
}
else
{
return true;
}
}
}
ça marche.
Mais le problème c'est pour l'adapter avec un JPanel Je garde seulement la classe AffichageImage.
Et quand j'utilise un code du type ci-dessous cela n'affiche pas d'image :
public static void main(String[] args) {
JFrame frame = new JFrame("essai") ;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel() ;
AffichageImage image = new AffichageImage("image.jpg") ;
panel.add(image) ;
frame.add(panel) ;
frame.pack();
frame.setVisible(true) ;
}

Est-ce que quelqu'un pourrait m'aider ? Le but étant de pouvoir charger facilement des images dans des JPanels

Réponses