# Java > Interfaces Graphiques en Java > AWT/Swing >  Afficher une image dans un JPanel

## @omzo

Bonjour,
je fais une programme qui me permet de rechercher une photo dans un dossier puis de l'afficher dans un JPanel. Pour cela j'utilise une instance d'une classe Screen que j'ai dfini moi mme et que j'ai fait driv de JPanel et puis j'ai dfini dans cette classe deux fonctions (setBackgroundIcon(ImageIcon v) et getBackgroundIcon()) qui me permettent d'accder et d'assigner une ImageIcon comme image du background du JPanel (instance de Screen).
La maire dont j'ai fait l'assignation est  la suivante:

   ....................
   private Screen pan = new Screen();
   ...............................
   pan.setBackgroungIcon(new ImageIcon("images/h.gif"));
   ............................

"images" est un package que j'ai dfini moi dans le package contenant les classes.

Cependant mon problme aucun problme ne m'est signal mais l'image n'apparait dans le JPanel pan que j'ai dfini. Je vous signale l'image  le mme taille le pan(en pixels bien entendu).

Qui peut m'expliquer ce qui se passe svp?

Merci d'avance pour vos rponses.

----------


## yannart

Essaye de rcrire la mthode paint component et l tu dessines ton image.


```

```

Vas aussi voir la FAQ: http://java.developpez.com/faq/gui/?...general_images

----------


## grabriel

Salut,

Sinon t'as JXImagePanel de swingx plus d'infos : http://www-igm.univ-mlv.fr/~dr/XPOSE...abs/swingX.php

et pour le code c'est 100 fois plus simple... et a sert  rien de rinventer la roue............



```

```

----------


## @omzo

Ok je vois ce dont vous me parlez j'essarai de le faire pour voir.
Cependant je veux seulement vous signaler que j'ai dclar deux classes: 


```

```

Voil en gros les deux classes que j'ai implment et qui m'ont gnr ce problme c'est  dire qu'il n' y a pas d'erreur dans le code mais l'image n'apparait du tout dans pan.

Alors en vous basant sur cela est ce que vous pouvez mz situer o se trouve exactement le problme qui m'empche de voir l'image? Merci!

----------


## Sanguko

Il n'y a pas de methode paint ?

----------


## yannart

hum... D'abord tu n'ajoutes ni le boutton ni le JPanel a ton JFrame.
Ensuite, que je sache un JPanel d'admet pas directement un icone, si tu veux essayes le JLabel qui lui en accepte un. Si tu veux vraiment utiliser un JPanel, tu devras utiliser l'autre solution qu'on te propose: recrire le painComponent.

----------


## Claythest

A noter que cette question est dans la FAQ, car elle est en effet pose grand nombre de fois... Donc avec une petite recherche sur google ou sur ce forum, on doit trouver la solution...

----------


## L Ankou

Sinon tu peux aussi essayer ceci:



```

```


A savoir que jlabel est un label qui occupe la hauteur et la largeur de l ecran.
jPanel.getWidth(),  est le jpanel sur lequel se trouve le jlabel.

----------


## @omzo

Non je n'est pas post tout le code mais une seule partie et je voulais mettre en vidence le code qui doit afficher l'image dans le panel. Bien sur que j'ai ajout les bouton et le panel au container mais seulement rien se s'affiche.

Je voudrai savoir pourquoi ceci ne marche pas:
       pan.setBackgroundIcon(getClass().getResource("images/h.gif"));

----------


## grabriel

> Ensuite, que je sache un JPanel n'admet pas directement un icone...


C'est pourquoi t'as JXImagePanel de swingx plus d'infos : http://www-igm.univ-mlv.fr/~dr/XPOSE...abs/swingX.php

Ou sinon 


> A noter que cette question est dans la FAQ...

----------


## @omzo

Le problme est rsolu.Il etait situ au niveau de l'url que j'ai spcifi au lieu de mettre 

```
pan.setBackgrounfIcon(getClass().getResource("photo/images/h.gif"));
```

, j'ai mis 

```
pan.setBackgrounfIcon(getClass().getResource("photo/images/h.gif"));
```

 ce qui fait que le compilateur ne voyait pas l'image.

Cependant j'ai aussi cre un JLabel dans la quelle j'ai ajout l'image avant d'ajouter le JLabel dans mon JPanel pan et c'est plus simpe car je n'ai crit que ceci:

```
label.setIcon(new ImageIcon("photo/images/h.gif"));
```

Merci pour tous vos contributions.

----------

