Question

J'ai un projet Java / Maven qui utilise des icônes de tango, alors j'utilise la dépendance suivante:

<dependency>
    <groupId>org.freedesktop.tango</groupId>
    <artifactId>tango-icon-theme</artifactId>
    <version>0.8.90</version>
</dependency>

et le code suivant, qui fonctionnerait bien avant de déplacer le proyect à Maven:

imageIcon = new ImageIcon(this.getClass().getResource(org/freedesktop/tango/22x22/actions/address-book-new.png));

Cependant, il entraîne désormais NullPointerException pour une raison quelconque. Le pot généré ne contient pas les images, ni ne les référencent de quelque manière que ce soit, mais les classes dans d'autres pots sont.

J'ai beaucoup enquêté, mais j'ai trouvé que la plupart des gens pataserent leurs images avec leur source.Ce n'est pas mon cas.

Que dois-je faire pour Maven pour faire référence et / ou emballer ces images avec succès? Comment puis-je obtenir Maven pour construire un pot annoncable autonome (c'est une application Swing).

Était-ce utile?

La solution

Si vous ajoutez une barre oblique avant le chemin, cela fonctionne:

ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/org/freedesktop/tango/22x22/actions/address-book-new.png"));

du API :

Avant la délégation, un nom de ressource absolue est construit à partir du Nom de la ressource donné à l'aide de cet algorithme:

si le nom commence par un '/' ('\ u002f'), le nom absolu de La ressource est la partie du nom suivant le '/'.Sinon, Le nom absolu est du formulaire suivant:

modified_package_name / nom où le nom modifié_package_name est le Nom du paquet de cet objet avec '/' substitué pour '.' '('\ u002e').

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top