Java afficher une image

Bonjour,

Je sais que mon problème est simple mais même après avoir tenté de nombreux algorithmes différent je n'arrive toujours pas à résoudre mon problème :

Je travaille dans une JFrame avec un JPanel en GridBagLayout et je veux ajouter une image dedans.

Je fais un :

monPanel.add(new MonImage("monImage.png"), gbc);


Où :
- gbc est ma contrainte GridBag
- monImage.png est dans mes ressources (dossier courant)
- monImage() est ma classe qui hérite d'un jpanel (ou un jlabel ou ce que vous voulez)

Je veux que ma classe monImage, en lui donnant simplement le nom de l'image, la charge depuis les ressources et lui définisse une taille (par exemple 360*240) via un jpanel ou un autre composant.

Bien entendu je veux que mon image soit affiché dans ma jframe à la fin, car mes ~10 premères tentatives se sont soldé soit par un élément vide, soit par un carré gris dans ma jframe.

Merci d'avance pour vos réponses

--
Cordialement,
Faure Lucas.

2 réponses

  1. Personellement j'utilise cette classe lorsque je doit insérer une image
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    public class ImagePanel extends JPanel implements Serializable {
        Image image = null;
        public ImagePanel(Image image) {
            this.image = image;
        }
        public ImagePanel() {
        }
        public void setImage(Image image){
            this.image = image;
        }
        public Image getImage(Image image){
            return image;
        }
        public void paintComponent(Graphics g) {
            super.paintComponent(g); //paint background
            if (image != null) { //there is a picture: draw it
                int height = this.getSize().height;
                int width = this.getSize().width;
                //g.drawImage(image, 0, 0, this); //use image size          
                g.drawImage(image,0,0, width, height, this);
            }
        }
    }