OVH Cloud OVH Cloud

Images en ressource ?

2 réponses
Avatar
Damien GUERIN
Bonjour,

je suis en train de faire un logiciel, et je cherche à l'améliorer.
Actuellement, j'ai un splash screen (fenetre sans barre de titre, présentant
le programme) au démarrage de mon application qui charge une image nommée
image.jpg à la racine de l'application afin d'être affichée sur mon splash
screen. Le problème est que si mon pogramme ne trouve pas ce fichier image
(fichier renommé ou déplacé) alors cette image n'est pas affichée (normal).
J'aimerais savoir si c'est possible en java d'incorporer ces images
directement dans l'application compliée. Le but étant d'éviter ces problèmes
d'accès aux fichiers étant donnée que ces fichiers seraient directement
présents dans l'application elle-même et non plus à coté.

Merci pour votre aide.

2 réponses

Avatar
GilloS
"Damien GUERIN" wrote in message
news:bntu1u$77l$
Bonjour,

je suis en train de faire un logiciel, et je cherche à l'améliorer.
Actuellement, j'ai un splash screen (fenetre sans barre de titre,
présentant

le programme) au démarrage de mon application qui charge une image nommée
image.jpg à la racine de l'application afin d'être affichée sur mon splash
screen. Le problème est que si mon pogramme ne trouve pas ce fichier image
(fichier renommé ou déplacé) alors cette image n'est pas affichée
(normal).

J'aimerais savoir si c'est possible en java d'incorporer ces images
directement dans l'application compliée. Le but étant d'éviter ces
problèmes

d'accès aux fichiers étant donnée que ces fichiers seraient directement
présents dans l'application elle-même et non plus à coté.

Merci pour votre aide.




Voici le code que j'utilise pour résoudre ce problème.

public static ImageIcon loadIcon( String url )
{
URL anURL = MaClasse.class.getResource( File.separator + url );


if ( anURL != null ) {
return new ImageIcon( anURL );
}
else {
return new ImageIcon( url );
}
}

Tu dois mettre ton image dans le même fichier Jar que ta classe "MaClasse" ;
tu peux la mettre dans un répertoire (imgs par exemple)

Puis tu appelles cette méthode pour charger ton image en lui passant le
chemin d'accès en relatif :
- exemple : imgs/mon_image.jpg

Si l'image se trouve bien dans le fichier Jar, il la chargera, sinon il ira
la chercher dans le répertoire courant d'exécution de ton Jar :
- exemple : si tu exécutes ton Jar dans C:Temp, il essaiera de charger
l'image depuis C:Tempimgsmon_image.jpg

Par contre, si tu veux vraiment mettre le code binaire de l'image, alors là
ça devient plus compliqué, et à mon avis pas évident à gérer, surtout si tu
veux changer l'image facilement.

Bon courage...

--
Pour me répondre enlever le 42 :
g i l l e s ( d o t ) w i a r t ( a t ) 4 2 a l t e r n a t i v e ( d o
t ) f r
ou
g i l l e s ( d o t ) w i a r t ( a t ) 4 2 w a n a d o o ( d o t ) f r

---------------------------------------------------------------
[...] même si tu comprends pas ce que je dis, tu le comprends
(Jean-Claude Van Damme)
---------------------------------------------------------------

Avatar
Damien GUERIN
Merci bien...
Effectivement ça marche bien.


"GilloS" a écrit dans le message de news:
bnu11f$14vp$
"Damien GUERIN" wrote in message
news:bntu1u$77l$
Bonjour,

je suis en train de faire un logiciel, et je cherche à l'améliorer.
Actuellement, j'ai un splash screen (fenetre sans barre de titre,
présentant

le programme) au démarrage de mon application qui charge une image
nommée


image.jpg à la racine de l'application afin d'être affichée sur mon
splash


screen. Le problème est que si mon pogramme ne trouve pas ce fichier
image


(fichier renommé ou déplacé) alors cette image n'est pas affichée
(normal).

J'aimerais savoir si c'est possible en java d'incorporer ces images
directement dans l'application compliée. Le but étant d'éviter ces
problèmes

d'accès aux fichiers étant donnée que ces fichiers seraient directement
présents dans l'application elle-même et non plus à coté.

Merci pour votre aide.




Voici le code que j'utilise pour résoudre ce problème.

public static ImageIcon loadIcon( String url )
{
URL anURL = MaClasse.class.getResource( File.separator + url );


if ( anURL != null ) {
return new ImageIcon( anURL );
}
else {
return new ImageIcon( url );
}
}

Tu dois mettre ton image dans le même fichier Jar que ta classe "MaClasse"
;

tu peux la mettre dans un répertoire (imgs par exemple)

Puis tu appelles cette méthode pour charger ton image en lui passant le
chemin d'accès en relatif :
- exemple : imgs/mon_image.jpg

Si l'image se trouve bien dans le fichier Jar, il la chargera, sinon il
ira

la chercher dans le répertoire courant d'exécution de ton Jar :
- exemple : si tu exécutes ton Jar dans C:Temp, il essaiera de
charger

l'image depuis C:Tempimgsmon_image.jpg

Par contre, si tu veux vraiment mettre le code binaire de l'image, alors


ça devient plus compliqué, et à mon avis pas évident à gérer, surtout si
tu

veux changer l'image facilement.

Bon courage...

--
Pour me répondre enlever le 42 :
g i l l e s ( d o t ) w i a r t ( a t ) 4 2 a l t e r n a t i v e ( d o
t ) f r
ou
g i l l e s ( d o t ) w i a r t ( a t ) 4 2 w a n a d o o ( d o t ) f r

---------------------------------------------------------------
[...] même si tu comprends pas ce que je dis, tu le comprends
(Jean-Claude Van Damme)
---------------------------------------------------------------