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

Interfaces Graphiques en Java Discussion :

[IconImage] IconImage capricieuse


Sujet :

Interfaces Graphiques en Java

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut [IconImage] IconImage capricieuse
    Bonjour et bonne année

    Ah, l'année commence mal avec un bug terrible dans mon code !
    Tout marche bien dans mon application pour voir un réseau moléculaire excepté un point. Je veux afficher une IconImage dans ma fenêtre principale. Donc, dans son constructeur, j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setIconImage(Toolkit.getDefaultToolkit().getImage("toto.jpg"));
    Je travaille sous Linux, Eclipse 3.1. dans mes tests sur ma machine de développement, ça marche, l'icône apparaît. Notez que mon image est contenu dans l'archive exécutable Jar de mon programme.
    Par contre, sur une autre machine, que ce soit sous Win et sous linux, mon icône n'apparaît pas ?
    Pourquoi ce caprice ?
    Merci d'avance de vos réponses.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Petit up. Personne ne voit pourquoi mon image, pourtant dans mon Jar ne s'affiche pas sur d'autres PC autre que ma machine de developpement ?

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est rare de renvoyer un redacteur vers la FAQ tout de même , mais bon c'est juste pour donner une piste
    Pour ton image essaye de passer par le ClassLoader (tu est dans un jar) pour charger ton adresse plutôt que directement mettre ton adresse en dur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.URL url = getClass().getResource("chemin/nom.gif");
    Trouvé dans la FAQ java
    http://java.developpez.com/faq/java/...QUE_IMAGE_lire
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Citation Envoyé par sinok
    C'est rare de renvoyer un redacteur vers la FAQ tout de même , mais bon c'est juste pour donner une piste
    Pour ton image essaye de passer par le ClassLoader (tu est dans un jar) pour charger ton adresse plutôt que directement mettre ton adresse en dur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.URL url = getClass().getResource("chemin/nom.gif");
    Trouvé dans la FAQ java
    http://java.developpez.com/faq/java/...QUE_IMAGE_lire
    Y a pas de mal Ce qui est valable pour les utilisateurs est tout aussi valable pour nous autres. Ok, je vais tenter ta solution, j'avais essayé de passer par une URL mais pas avec cette construction. A tenter.

    Merci à toi.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Et bien c'est parfait. Ca roule. Le pire, c'est que j'avais déjà utiliser cette méthode mais pour mes vieux programmes, il y a bien bien longtemps .
    Merci encore sinok.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    Malgrès avoir lu la FAQ et les posts , je ne parviens pas à lire mon image autrment qu'avec Eclipse.
    Le programme fonctionne donc parfaitement sous Eclipse mais pas quand je créer le jar excécutable.

    J'ai tester de mettre les images dans le jar , puis à l'extérieur .

    Je rappelle pourtant que j'ai utiliser le code suivant pour lire les images :
    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
    26
    27
    package Interface;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.net.URL;
     
    import javax.imageio.ImageIO;
     
    public class RecupererImage{
     
    BufferedImage img;
     
    public RecupererImage(String path)throws IOException{
     
            URL url=null;
            try 
            {
              url = getClass().getClassLoader().getResource(path);
             img = ImageIO.read(url);
            } 
            catch (Exception e){
            	System.out.println("Exception sur l'image"+e);
            }
          }
    public BufferedImage retourner(){
    	return img;
    }
    }
    J'utilise bien la fonction getClassLoader()

    Les fichiers se trouvent dans un dossier , le path ressemble à : 'images/tot.png'

    Merci de votre aide

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    J'ai ajouter un '/' devant tous mes paths. et j'ai change rmon url pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url = getClass().getResource(path);
    Le pire c'est que c'est identique , le prog marhce sous Eclipse et pas en tant que Jar exécutable.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    Je vois pas comment ca se fait

  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 arsenik7
    Je vois pas comment ca se fait
    Où sont tes fichiers dans le Jar ?
    Que vaut le paramètre path ?
    Vérifie bien qu'il n'y ai pas d'erreur de minuscule/majuscule...

    a++

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    Le path est de la forme : mon dossier de mon projet contient :
    un fichier.jar contenant:
    -le dossier META-INF et le fichier MANIFEST.MF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: Interface.FenetrePrincipale
    Class-Path: .\JOracle.jar
    -le dossier Interface contenant les .class et .java de mon prog
    -plusieurs dossiers "images", "logos", "materiel" contenant des images.

    un fichier JOracle.jar (une librairie pour se connecter à un serveur)

    un fichier .bat pour lancer le jar avec "java -jar fichier.jar"



    Mon programme m'affiche java.nullpointer.exception sur la premire image à charger

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    YOUPI !

    Merci pour ton aide ! C'était bien les minuscules / majuscules qui foutés le boxon.

    Dans mon prog sous eclipse il trouve bien Lorsque j'en fait un JAR il ne trouve pas car il faut TOUT metttre en majuscule , c'est à dire

  12. #12
    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 arsenik7
    Lorsque j'en fait un JAR il ne trouve pas car il faut TOUT metttre en majuscule , c'est à dire
    Il ne faut pas TOUT mettre en majuscule, mais respecter la casse original...
    Tu dois surement développer sous Windows, et si tu peux utiliser des majuscules dans le nom des fichiers, la différences majuscule/minuscule n'est pas prise en compte lors de l'ouverture de fichier.
    Donc pour un fichier nommé SGSF.PNG tu peux utiliser toutes les formes suivantes :
    • SGNF.png
    • sgnf.PNG
    • sgnf.png
    • Sgnf.png
    • etc.

    A l'inverse les fichiers Jar font une distinction entre minucules/majuscules, et SGNF.PNG est différent de SGNF.png...

    a++

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Points : 99
    Points
    99
    Par défaut
    merci pour le détail

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

Discussions similaires

  1. IconImage de JFrame
    Par rtg57 dans le forum NetBeans Platform
    Réponses: 0
    Dernier message: 29/01/2010, 15h31
  2. [Cookies] Variable de Session capricieuse :/
    Par nikospkrk dans le forum Langage
    Réponses: 8
    Dernier message: 19/08/2006, 13h11
  3. procédure stockée capricieuse
    Par misa dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/01/2006, 11h07
  4. [INSTALL][10gR2] Installation capricieuse
    Par max44410 dans le forum Oracle
    Réponses: 15
    Dernier message: 13/12/2005, 00h34
  5. Balise <DIV> capricieuse..!!
    Par nerik38 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2005, 16h43

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