Bonjour à vous ,
Bon voici mon problème. J'utilise NetBeans pour mon projet. sur le net, j'ai trouvé un bout de code qui permet d'afficher une image en arrière plan dans un JPanel.
Donc instinctivement, j'ai mis un dossier "images" dans mon dossier source afin de pointer sur les fichiers depuis mes différentes classes.
C'est super car ca marche... en local.
Oui comme vous pouvez vous en douter, ca ne fonctionne pas lorsque je met mon .JAR dans mon serveur.
Via NetBeans, j'ai créé le .JAR et de suite, j'ai vérifié que mes images étaient bien dedans: c'est le cas.
Donc je ne comprend pas très bien.
De plus, pour vérifier que ma classe (celle qui créer le JPAnel avec l'image en fond) "fonctionne" j'ai dessiner un petit cercle, qui lui apparaît bien lorsque je suis en ligne.
Donc au final, j'en ai déduis que les URL ne sont plus valides, ce qui est troublant puisqu'en local ca fonctionne....
Bon je m'embrouille un peu la
Voici ma classe afin que vous y jetez un coup d'oeil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class BackgroundPanel extends JPanel{ Image image; public BackgroundPanel(String cheminImage, String nomImage) { String url = cheminImage + "/" + nomImage; try { image = javax.imageio.ImageIO.read(new java.net.URL(getClass().getResource(url), nomImage)); } catch (Exception e) { /*handled in paintComponent()*/ } this.setOpaque(false); }//end of constructor @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (image != null) { g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } g.drawOval(10, 10, 10, 10); // permet de vérifier si ca marche }//end of override method
Voici comment j'instancie mon objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part BackgroundPanel banniere = new BackgroundPanel("images\\", "banniereWelcome.jpg");
En espérant avoir été assez clair...
Partager