IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Graphique] Affficher une image contenue dans un jar avec ImageIcon


Sujet :

Java

  1. #1
    Membre habitué
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Points : 184
    Points
    184
    Par défaut [Graphique] Affficher une image contenue dans un jar avec ImageIcon
    Bonjour,

    Mon problème est le suivant: j'ai une appli qui fonctionne très bien et qui ouvre des images contenues dans le répertoire image qui se trouve à la racine des sources.

    Lorsque je crée mon jar, le dossier image se retrouve fort naturellement lui aussi à la racine de ce jar.

    Seulement les images ne s'affichent plus (évidemment je n'utilise plus le dossier externe, le but est bien d'ouvrir indifférement les images qu'elles soient dans le jar ou pas).

    Le code de base est celui la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            ImageIcon icon = createImageIcon("./images/"+logo_s,"Highdeal logo");
    j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            java.net.URL url = getClass().getResource("./images/"+logo_s);
            System.out.println(url.toExternalForm());
    url est un pointeur null

    j'ai essayé d'enlever le ./ avant image, meme chose.

    Quelqu'un pourrait-il m'aider à comprendre ce qui ne va pas ? Merci d'avance

  2. #2
    Membre habitué
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Points : 184
    Points
    184
    Par défaut
    après une petite prise de tete mais sans desespérer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            ClassLoader classLoader = this.getClass().getClassLoader();
            URL url = classLoader.getResource("images/"+logo_s);
            ImageIcon icon = new ImageIcon(url,"logo");

    voila

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par guipom
    après une petite prise de tete mais sans desespérer
    La prochaine fois va faire un petit tour dans les FAQs au lieu de te prendre la tête

    FAQ : Comment accéder à une image ?

    a++

  4. #4
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Je tape l'incruste sur ce sujet pour poser une question:

    jusqu'à présent je chargeais mes icones dans un répertoire de l'arborescence, mais pour déployer mon appli, je veux les charger depuis le jar. OR j'avais mis tous les chemins de mes icones (ainsi que plein d'autres paramètres) dans une interface Constants. Ca donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public final ImageIcon ICON_GO = new ImageIcon("images/play16.gif");	
    	public final ImageIcon ICON_BLAST = new ImageIcon("images/blast16.gif");	
    	public final ImageIcon ICON_EXPORT = new ImageIcon("images/export16.gif");
    Mais du coup je peux pas utiliser la méthode du classloader vu que je suis dans une interface.. Alors je sais pas trop comment m'en sortir. Comme je suis une buse je demande votre avis éclairé

  5. #5
    Membre habitué
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par adiGuba
    Salut,

    Citation Envoyé par guipom
    après une petite prise de tete mais sans desespérer
    La prochaine fois va faire un petit tour dans les FAQs au lieu de te prendre la tête

    FAQ : Comment accéder à une image ?

    a++
    tu crois que j'ai fait quoi ?

    non le probleme était qu'il fallait récupérer le classloader visiblement, et pas faire comme dans la FAQ, ca ne voulait pas marcher

  6. #6
    Membre habitué
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par legzo
    Je tape l'incruste sur ce sujet pour poser une question:

    jusqu'à présent je chargeais mes icones dans un répertoire de l'arborescence, mais pour déployer mon appli, je veux les charger depuis le jar. OR j'avais mis tous les chemins de mes icones (ainsi que plein d'autres paramètres) dans une interface Constants. Ca donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public final ImageIcon ICON_GO = new ImageIcon("images/play16.gif");	
    	public final ImageIcon ICON_BLAST = new ImageIcon("images/blast16.gif");	
    	public final ImageIcon ICON_EXPORT = new ImageIcon("images/export16.gif");
    Mais du coup je peux pas utiliser la méthode du classloader vu que je suis dans une interface.. Alors je sais pas trop comment m'en sortir. Comme je suis une buse je demande votre avis éclairé
    moi j'ai fait:

    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
    22
    23
    24
    25
    package tools;
     
    import java.awt.Image;
    import java.awt.Toolkit;
     
    public class ImageLoader {
     
    	private final static String PATH = "images/";
    	private static ImageLoader instance = null;
     
    	private ImageLoader() {}
     
    	public static ImageLoader getInstance() {
    		if (instance == null) {
    			instance = new ImageLoader();
    			return instance;
    		}
    		else return instance;
    	}
     
        public Image getImageByUrlString(String filename) {
            return Toolkit.getDefaultToolkit().getImage(this.getClass().getClassLoader().getResource("images/"+filename));
        }
     
    }

  7. #7
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Oui c'est pas mal du tout, c'est ce que je vais mettre en place, je te remercie.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] afficher une image contenue dans un blob avec d'autres infos
    Par pakkun dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/06/2007, 17h08
  2. est ce qu on peu dimensionner une Image contenu dans un Jlabel
    Par uzumaki_naruto dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/02/2007, 16h33
  3. Appel d'une jsp contenue dans un JAR
    Par shaun_the_sheep dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 22/09/2006, 09h37
  4. [JAR] Accéder à une resource contenue dans un jar
    Par Blo0d4x3 dans le forum Général Java
    Réponses: 4
    Dernier message: 17/02/2006, 08h29
  5. [JAR] instancier une Image contenue dans un jar
    Par celine31 dans le forum Général Java
    Réponses: 3
    Dernier message: 03/04/2005, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo