-
Affichage d'image, proxy
Bonjour à tous et bonnes fêtes !
Je post ici car j'ai un petit problème : je n'arrive pas à faire afficher une image jpg dans une JFrame/JPanel (je sais pas trop lequel c'est)...
Mon but c'est de créer un proxy d'image qui afficherait un rectangle et une croix rouge pendant le chargement d'une image, et une fois le chargement terminé, l'image s'afficherait. La première partie fonctionne (mais pas tout le temps, je comprends pas trop pourquoi), par contre lorsque l'image est chargée (ou du moins semble l'être), rien ne s'affiche. Je pense que l'image n'est pas chargée, car quand je demande img.getHeight(this) par exemple, j'obtiens -1...
J'ai utilisé Toolkit.getDefaultToolkit().getImage("fileName.jpg") pour charger mon image, puis chargée dans un Mediatracker.
Pour afficher mon image je pensais utiliser drawImage, mais apparamment ça ne marche pas...
Quelqu'un aurait-il/elle une solution ?
Merci d'avance
-
Salut bonnes fêtes à toi aussi.
Récemment j'ai fait exactement la même chose, j'affiche un JPanel vide et dans un autre thread je charge l'image. Lorsque l'image est chargée je l'affiche dans mon JPanel.
Pour charger l'image moi j'ai préférais utiliser
Code:
ImageIO.read (tonFichier);
parceque lorsque l'appel à cette fonction est terminée (sans exceptions évidemment) tu es sur que ton image est entierement chargée.
Et pour l'affichage j'utilise drawImage et ça marche très bien.
Voilà j'espère que j'ai pu t'aider.
-
Rebonjour,
J'ai esssayé la méthode avec ImageIO, ça ne marche pas non plus.
En fait, je suis sensé utiliser la méthode passant par le Toolkit : On m'a donnée 2 classes préconstruites que j'avais à compléter + les indications, et je dois utiliser le Toolkit normalement. Seulement, j'ai tout compléter et je ne comprends pas où est le problème (je suis un peu débutant)
-
est-ce que une exception est levée pendant le chargement de l'image?
est-ce que l'image est bien à l'emplacement indiquée par le chemin que tu passe au toolkit?
a part ce je ne sais pas trop pourquoi ca ne marcherai pas...
-
De temps en temps (mais c'est bizarre, parce que ce n'est pas systématique) j'obtiens une NullPointerException. Pourtant je suis sûr de l'endroit de mon image.
-
Tu peux :
- catcher cette exception et faire un printStackTrace() histoire de savoir a quelle ligne elle a eut lieu.
- nous montrer ton code, car ne sachant pas trop ce que tu fais, difficile de repondre correctement a ta question...
Des suggestions pour ton dessin d'image d'attente :
- faire dessiner le rectangle et la croix rouge par ton JPanel directement, c'est probablement la methode la plus simple et la moins gourmande.
- ou utiliser une image intermediaire (le proxy) dans laquelle tu dessines ce rectangle et cette croix et que tu affiche dans le JPanel. Quand l'image voule est completement chargee soit tu remplaces l'image d'attente par la nouvelle, soit tu dessines la nouvelles image dans l'image d'attente (en supposant qu'elle a la bonne taille*). Ensuite tu raffraichi l'affichage de ton JPanel.
*Dans ce cas mieux vaut rester du cote du chargement asynchrone (Toolkit et MediaTracker) et voir du cote de ImageObserver pour quand tu veux etre notifie de la reception des dimensions de l'image.
-
1 pièce(s) jointe(s)
Voici le code ci-dessous. J'utilise déjà un MediaTracker en fait... Mais je suis pas tout à fait sûr de l'utiliser correctement.