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 :

Bug swingwt v0.89


Sujet :

Interfaces Graphiques en Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Bug swingwt v0.89
    j'ai un petit soucis (un gros même) lorsque j'essaie d'accéder aux images (qui sont incluses ou pas dans le jar de mon application) avec l'api swingwt version 0.89 j'ai toujours une exception : org.eclipse.swt.SWTException: Invalid image
    blabla...

    j'ai beau essayé une multitude de choses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new swingwtx.swing.ImageIcon(Maclasse.class.getResource("/tmp.png"))).getImage();
    ou sans le /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new swingwtx.swing.ImageIcon(Maclasse.class.getResource("tmp.png"))).getImage();
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    swingwtx.swing.SwingWTUtils.getPixmap(Maclasse.class, "tmp.png").getImage();
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    swingwt.awt.Toolkit.getDefaultToolkit().getImage(Maclasse.class.getResource("tmp.png"));
    , j'ai même changé les images, rien à faire...
    Le pire c'est que ça fonctionne pour certaines images mais pour d'autres rien. si vous savez d'où peut provenir ce problème et comment y remédier....
    merci.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Salut,
    Donc SWT déconne au chargement d'images, que ce soit ressources en .jar ou fichier individuel sur disque ?
    Est-ce que c'est pas le ".getImage()" qui est problématique plutôt ?
    Essaie un code qui ne fait rien qu'instancier un ImageIcon (du package swingwt), sans faire de ".getImage()"

    Aaaah, ou alors :
    Quand on charge une image avec Swing, on utilise donc le Toolkit par défaut, et on utilise des MediaTracker ou un truc comme ça.
    Et avant de récupérer des infos sur une image, il faut attendre qu'elle soit complètement chargée, ex. :

    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
     
        /**
         * Charger une image à partir d'une ressource
         * @param name Nom de la ressource
         * @return
         */
        public static Image loadImageByResource (String name) {
        /** Charger l'image */
            try {
                System.out.println ("Loading icon by resource :"+name);
                Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
            Image image        = null;
                // Essayer de charger la ressource
                image = toolkit.getImage(ImageLoading.class.getResource(name));
                MediaTracker mediaTracker = new MediaTracker(null);
                mediaTracker.addImage(image, 0);
                mediaTracker.waitForID(0);
            return image;
            } catch (Exception e) {
                System.out.println("Warning : Could not load resource image.");
            }
        /** Retourner rien */
        return null;
        }
    En gros, dans ce code, le mediaTracker.waitForID(0) bloque l'exécution de ton thread actuel (c'est très très court et indétectable par une personne) tant que le thread Swing a pas fini de créer le contenu de l'image. Très pratique en temps habituel.

    @+

    EDIT : Je suppose que ton code actuel marche moins mal pour de petites images, vrai ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    je viens d'essayer mais toujours le même problème! ce qui est vraiment étrange c'est que ce sont toujours les mêmes images qui posent problème! même si je les remplace ou les renomme, j'ai toujours la même exception.
    je tiens a rajouter que mes images sont toutes petites et je n'ai pas ce problème avec l'api standard swing/awt (la ça passe sans problème) mais avec swingwt! de quoi encourager les débutants a utiliser cette api!! super!!

  4. #4
    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
    Quel est le résultat en utilisant la version Swingwt de ImageIO.read(...) pour charger l'image?

    Sinon pour ce genre de bugs purement liés à une API tu peux essayer la Mailing List du projet (reste à voir si elle est active)
    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.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par cryptoo Voir le message
    je viens d'essayer mais toujours le même problème! ce qui est vraiment étrange c'est que ce sont toujours les mêmes images qui posent problème! même si je les remplace ou les renomme, j'ai toujours la même exception.
    je tiens a rajouter que mes images sont toutes petites et je n'ai pas ce problème avec l'api standard swing/awt (la ça passe sans problème) mais avec swingwt! de quoi encourager les débutants a utiliser cette api!! super!!
    Salut,
    Effectivement je te cacherai pas que ça sent le bug, ou alors certains types de compression dans certaines images sont pas pris en charge

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2003, 16h37
  2. Bug new build ??
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 31/01/2003, 10h30

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