Java : définir des images static dans un JAR?

Fermé
nb88 - 29 déc. 2003 à 23:43
rameur Messages postés 135 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 21 janvier 2009 - 31 déc. 2003 à 16:49
Bonjour,

j'ai un problème avec mon application Java... Celle ci tourne parfaitement bien sous son IDE (JBuilder) mais ça se corse quand on en arrive à mettre tous les beaux fichiers dans une archive JAR...

Alors voilà : pour déclarer mes images, j'utilise du code selon l'exemple suivant :
static Image flipCard = Toolkit.getDefaultToolkit().getImage("chemin/absolu/image.jpg");
static ImageIcon flipcard = new ImageIcon(flipCard);

Forcément, ça marche puisque le chemin est absolu et que je suis sur ma machine.
Par contre, pour mettre le tout dans un JAR, je remplace la première ligne par :
static Image flipCard = Toolkit.getDefaultToolkit().getClass().getClassLoader().getResource("package/repimages/image.jpg");

Ce qui marche pour les images non-statiques, mais pas pour les images statiques comme c'est le cas dans mon exemple précédent.

Le probleme c'est que si je retire le 'static' je ne peux plus récupérer l'image dans une autre class... enfin je ne crois pas, en tout cas je ne sais pas comment :p

Donc, quelqu'un aurait-il une solution quelconque qui permettrait de faire tourner l'appli ailleurs que dans JBuilder ??
- dans un fichier JAR, ce qui serait l'idéal
- dans un répertoire normal avec toutes les class et les images, impliquant que le chemin d'accès aux images dans les class soit un chemin relatif
- une autre solution ! (désespéré je suis)


Dites moi si c'est pas clair j'essaierai d'etre plus explicite :p

Merci d'avance !!!
A voir également:

3 réponses

Merci, mais non ça ne m'aide pas lol, probablement parce que je suis trop newbie encore ;)

En fait, si je fais cette classe... comment je m'en sers ?

Je ne peux a priori (des a priori de newbie hein :p) pas appeler la méthode getImage depuis mon autre classe puisque la méthode n'est pas statique, et si je la rend statique, ben retour au problème initial qui est que getClass() ne peut plus s'appliquer.

Comment faire pl z ? :p

Mici :p
0
rameur Messages postés 135 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 21 janvier 2009 21
31 déc. 2003 à 16:49
consulte le package java.beans il y a 1 classe qui permet de charger des images a partir d un fichier jar ( rappelle moi la prochaine fois je te le passe si tu trouves pas je l ai juste oublie !)
0
silfaxu Messages postés 102 Date d'inscription jeudi 18 décembre 2003 Statut Contributeur Dernière intervention 6 février 2008 11
30 déc. 2003 à 08:49
Salut,

Tu as essayé ça :

public class JARImage {
protected ImageIcon getImage(String imageName){
ImageIcon image = new ImageIcon();
try {
image.setImage((Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/"+imageName))));
}
catch(Exception ex) {
System.out.println("Image Error: " + ex);
ex.printStackTrace();
}
return image;
}

Avec le repertoire images présent dans ton JAR

J'espere que ça t'aidera

@+
-1