Christophe59193
Messages postés8Date d'inscriptionmercredi 12 mars 2008StatutMembreDernière intervention13 mars 2012
-
18 janv. 2011 à 16:00
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
28 janv. 2011 à 09:24
Bonjour tout le monde,
J'ai un petit soucis avec mon programme en java.
Dans une fonction quelconque, j'ai fait appel à des images. Le programme fonctionne mais j'ai voulu mettre en place un try{} catch{} dans le cas ou l'image est absente, au moins ça ne planteras pas et affichera un message d'erreur. Jusque la, cela marche parfaitement.
Cependant en faisant la même vérification dans la fonction paint(Graphics g), cela ne fonctionne pu. Quelqu'un saurait il pourquoi?
Voici mon code:
try{
// On place un obstacle
URL url2 = this.getClass().getResource("/images/dessin.jpg");
image =Toolkit.getDefaultToolkit().getImage(url2);
if(image != null)// Si l'image existe, ...
g.drawImage(image, i*image.getHeight(getParent()), j*image.getWidth(getParent()), this); // ... on la dessine
}catch(Exception e){
System.out.println("Chargement image impossible");
}
A noté que mes images se trouvent dans le dossier "images" dans le dossier "bin" du workspace du projet.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 28 janv. 2011 à 09:24
Salut,
Réponse HS :
Ton try/catch c'est pas dans la méthode paint/paintComponent que tu le fais ? tu ne charges pas systématiquement ton image dans la méthode paint/paintComponent j’espère ?
Sinon autre point, pour charger ton image tu ne devrais pas utiliser la classe Toolkit sans utiliser de tracker (MediaTracker) qui va charger ton image de manière asynchrone* mais plus ImageIO.read(....) qui lui est synchrone et va donc t'avertir de suite si il y a un pb avec l'image.
* Tu peux lire les quelques lignes sur le chargement synchrone et asynchrone des images : ici Dans l'exemple synchrone il utilise un MediaTraker mais tu pourrais remplacer toute ça par l'utilisation de ImageIO.
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."