Chargement des ressources à l'aide de getClass().getResource()

Je suis en train de charger une image à utiliser comme icône dans mon application. La méthode appropriée en fonction de ce tutoriel est:

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, j'ai placé l'emplacement du fichier, et l'a transmis en tant que paramètre à cette fonction. Cela n'a pas fonctionné, c'est à dire imgURL était nulle. Quand j'ai essayé de créer le ImageIcon en passant dans le chemin d'accès de manière explicite:

ImageIcon icon  = new ImageIcon(path,"My Icon Image");

Il fonctionnait très bien! Donc, l'application peut choisir l'image à partir d'un définies explicitement chemin, mais n'a pas pris l'image à l'aide de getResources(). Dans les deux cas, la valeur de la variable de chemin d'accès est le même. Pourquoi ne serait-il pas de travail? Comment sont les ressources trouvées par le chargeur de classe?

Grâce.

  • Êtes-vous d'utiliser un IDE? Est l'IDE mis à copier les ressources en où les classes compilé pour?
  • Où est l'image par rapport à la classe et à la racine du projet?
  • Oui, je suis à l'aide d'Eclipse, et il n'était pas mis en place pour copier les ressources. Ont résolu. La classe est situé dans root/bin/<noms>/MyClass et les images se trouvent dans root/resources/images/myImage.gif Merci pour vos réponses.
InformationsquelleAutor Luhar | 2010-02-26