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 :

[JAR] Les icônes ne s'affichent pas


Sujet :

Java

  1. #1
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut [JAR] Les icônes ne s'affichent pas
    Bonjour

    J'ai créé une archive executable, mon programme se lance bien mais les icones n'apparaissent plus.
    Comment spécifié le chemin d'accé au icones dans le programme?

    Merci pour votre aide

  2. #2
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Je voudrais aussi savoir comment inclure des jars externes. Je développe sous eclipse et tout fonctionne lorsque je lance l'application a partir d'eclipse.

    Merci d'avance

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Pour employer les ressources dans un jar, il faut que tu spécifies getRessource()

    Tu peut le faire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedImage image = ImageIO.read(getClass().getClassLoader.getRessource("chemin"));

  4. #4
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Salut a toi,

    justement en utilisant getRessource, je n'arrive pas a faire apparaite mes images, donc je fais de cette maniere directement new ImageIcon("icons/icon.gif");
    Qd j'utilise MaClass.class.getResource("icons/icon.gif") cela ne fonctionne plus. C'est un probleme de chemin mais je ne sais pas quoi mettre comme chemin

  5. #5
    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 david06600
    Qd j'utilise MaClass.class.getResource("icons/icon.gif") cela ne fonctionne plus. C'est un probleme de chemin mais je ne sais pas quoi mettre comme chemin
    new ImageIcon() ira te chercher un fichier sur le disque dur...

    getResource() recherchera dans le classpath (et donc dans le jar) selon un chemin absolu (si cela commence par '/') ou un chemin relatif au package de la classe....

    Donc : où sont situé tes images ? Dans ton Jar principale ? Sous quel arborescence ?

    a++

  6. #6
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Bonjour,

    Mes images sont situées dans un dossier qui s'appelle icons qui est directement sous le projet. Mon dossier source est lui aussi directement sous le projet et il contient different package, dont un package ihm qui contient ma classe qui doit accéder aux images.

    voici mon code pour y accéder qui ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try
    {
    computerIcon = new ImageIcon(MaClasse.class.getResource("icons/computer.gif"));
    [i].....d'autres images[/i]
    Le code suivant marche mais lorsque j'exporte en jar executable é que mon appli est lancé, les images n'apparaissent pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageIcon computerIcon = new ImageIcon("icons/computer.gif");
    Ce code se trouve dans une fonction d'initialisation, j'utilise computerIcon ailleurs dans le code.

    Merci.

  7. #7
    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
    Citation Envoyé par david06600
    Mes images sont situées dans un dossier qui s'appelle icons qui est directement sous le projet. Mon dossier source est lui aussi directement sous le projet et il contient different package, dont un package ihm qui contient ma classe qui doit accéder aux images.
    C'est à dire ? Est-ce qu'il fait partie du CLASSPATH de ton application ou non ? Le projet est une notion des EDI, non pas de Java... Par exemple avec eclipse pour que les ressources soient dans le CLASSPATH il faut les ajouter comme fichier "Source"...

    Citation Envoyé par david06600
    voici mon code pour y accéder qui ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try
    {
    computerIcon = new ImageIcon(MaClasse.class.getResource("icons/computer.gif"));
    [i].....d'autres images[/i]
    Comme je l'ai dit, si MaClasse appartient au package "com.societe", getResource recherchera dans le CLASSPATH sous l'arborescence /com/societe/icons/computer.gif...


    Citation Envoyé par david06600
    Le code suivant marche mais lorsque j'exporte en jar executable é que mon appli est lancé, les images n'apparaissent pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageIcon computerIcon = new ImageIcon("icons/computer.gif");
    Si ce code marche avec ton EDI c'est qu'il doit surement lancé ton application avec le répertoire de ton projet comme répertoire de travail. Or les images ne peuvent pas être accéder comme cela une fois dans le Jar...


    Donc : configure ton EDI pour que tes images soient dans le CLASSPATH (ie dans un 'package'), et utilise getResource() accéder à tes images, eventuellement en lui passant un chemin absolu (qui commence par /)...


    a++

  8. #8
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Merci pour ces précisions.

    Mes images font parties du classe path, mais ne sont pas dans le mm package que le classe qui accède aux images.
    Est ce qu'il y a une façon de faire pour que cela fonctionne dans ce cas la?

  9. #9
    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
    Citation Envoyé par adiGuba
    en lui passant un chemin absolu (qui commence par /)
    Si le nom du packages contenant les images est bien icons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse.class.getResource("/icons/computer.gif");
    a++

  10. #10
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Cela marche si je met mon package icons dans le mm package que ma classe qui y accède mais si je laisse le package contenant les icons au mm niveau que mon package source qui contient toute mes classes et que j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaClasse.class.getResource("/icons/computer.gif");
    Cela ne fonctionne pas.

    Désolé

  11. #11
    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
    Quel est le nom complet du package ? L'arborescence complete vers ton fichier ?

    a++

  12. #12
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    J'utilise eclipse, le nom du projet est com.moviesoftswing.logesco, sous le projet j'ai mon dossier source qui s'appelle src, et mon dossiers icons.
    Sous src j'ai un package ihm, qui contient la classe FileExplorer qui doit utiliser mes icons.

    Je pourrais envoyer une image de l'arborescence mais je ne c'est pas comment ajouter une image...

  13. #13
    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
    Le dossier "icons" doit être dans "src" pour faire partie du classpath...

    a++

  14. #14
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    ok sa marche, je pensais qu'en l'ajoutant en source comme le dossier src cela marcherai.

    Merci beaucoup pour ton aide.

  15. #15
    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
    Le dossier que tu ajoute en source devient la racine du classpath : il ne fait donc pas partie de ce dernier...


    Si tu veux séparer les images des sources, il faut ajouter un autre dossier en tant que source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    res // ajouter en tant que source
       +-> icons
                 +-> computer.gif
    a++

  16. #16
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Oui c'est ce que j'ai pensé aussi, merci d'avoir confirmé. Mais bon cela me convient aussi qu'il soit dans le dossier source.

    Merci

    A bientot.

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

Discussions similaires

  1. Les composants RichFaces 4 ne s'affichent pas
    Par meryam123 dans le forum JSF
    Réponses: 8
    Dernier message: 20/03/2013, 18h45
  2. Réponses: 0
    Dernier message: 05/09/2011, 21h26
  3. [1.x] les images du layout.php s'affiche pas
    Par sou1987 dans le forum Symfony
    Réponses: 1
    Dernier message: 21/02/2010, 18h27
  4. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 12h03
  5. Les loupes de recherche ne s'affichent pas
    Par Loko dans le forum WinDev
    Réponses: 1
    Dernier message: 07/01/2008, 16h39

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