J'essaie de charger une image à utiliser comme icône dans mon application. La méthode appropriée en fonction de ce tutorial est:Chargement des ressources en utilisant getClass(). GetResource()
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
Donc, je placé l'emplacement du fichier, et il est passé en tant que paramètre à cette fonction. Cela n'a pas fonctionné, c'est-à-dire qu'imgURL était nul. Quand je l'ai essayé de créer ImageIcon en passant dans le chemin explicitement:
ImageIcon icon = new ImageIcon(path,"My Icon Image");
Il fonctionnait très bien! Ainsi, l'application peut ramasser l'image à partir d'un chemin explicitement défini, mais n'a pas récupéré l'image en utilisant getResources(). Dans les deux cas, la valeur de la variable de chemin est la même. Pourquoi ça ne marcherait pas? Comment les ressources sont-elles trouvées par le chargeur de classe?
Merci.
Utilisez-vous un IDE? Est-ce que l'EDI est configuré pour copier les ressources là où les classes sont compilées? – z5h
Où se situe l'image par rapport à la classe et à la racine du projet? – willcodejavaforfood
Oui, j'utilise Eclipse, et il n'était pas configuré pour copier des ressources. J'ai réglé ça. La classe se trouve dans root/bin//MyClass et les images se trouvent dans root/resources/images/myImage.gif Merci pour vos réponses. –
Luhar