Java Swing : comment ajouter une image JPEG ou PNG à un JPanel ?

Le framework Swing permet de créer des applications graphiques en Java. Ce framework utilise différentes classes pour dessiner les éléments graphiques qui composeront l'interface.

Le framework Swing permet de créer des applications graphiques en Java. Ce framework utilise différentes classes, qui ont un nom commençant par J, pour dessiner les éléments graphiques qui composeront l'interface. Le JPanel est un panneau qui peut contenir d'autres composants. Il s'agit d'un composant de base des interfaces Swing. Il est possible d'ajouter une image au JPanel.

Pour cela, on ouvre le fichier contenant l'image grâce à la classe ImageIO. Cette classe possède entre autres la méthode read() permettant de récupérer le contenu de l'image à partir du fichier passé en paramètre. L'image est ensuite stockée en mémoire tampon dans un objet BufferedImage. On peut l'utiliser dans Swing grâce à la classe ImageIcon qui est un composant des interfaces. On peut également créer une classe dérivant de JPanel et dessiner cette image en même temps que le panneau, c'est-à-dire dans la méthode paintComponent du JPanel. On se servira alors de la méthode drawImage().

Exemple avec le composant imageIcon :

BufferedImage myPicture = ImageIO.read(new File(monFichierImage));
ImageIcon image = new ImageIcon(myPicture);

Exemple avec une classe héritant de JPanel :

public class ImagePanel extends JPanel{
private BufferedImage image;
public ImagePanel() {
image = ImageIO.read(new File(monFichierImage));
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
}

Java