2017-05-31 6 views
1
ClassLoader cldr = ImageDisplayTest.class.getClassLoader() 
URL url = cldr.getResource("resources/wifi.png"); 
jLabel3.setIcon(new ImageIcon(url)); 

Il s'agit du code que j'ai écrit pour charger une icône d'image. Pouvez-vous suggérer ce que je dois faire, parce que je reçois une erreur:Impossible de charger l'icône Image sur un bouton dans NetBeans

java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: ImageDisplayTest.class.getClassLoader

Répondre

1

Il suffit de faire

ImageDisplayTest.class.getResource("/resources/wifi.png"); 

Cela suppose que votre répertoire resources est sur le chemin de classe.

MISE À JOUR:

Comme vous ne nous a montrer la structure du répertoire, nous avons supposé que vous savez ce que vous faites et resources dans votre chemin est package réel. Mais comme vous l'avez mentionné, c'est un projet Maven, une ampoule apparaît au-dessus de ma tête. Je parie que vos "ressources" est une partie de la structure du répertoire maven ai-je raison?

Dans ce cas, votre chemin vers la ressource sera simple "/wifi.png" en supposant que cette image existe et n'est pas imbriquée dans d'autres paquets. Par souci de clarté, si cela ne fonctionne pas, affichez votre structure de répertoire - capture d'écran d'eclipse ira bien.

+0

Y at-il substituer à ImageDisplayTest? Je veux charger une icône sur un bouton. –

+0

@SwagatYadawad Utilisez le nom de la classe contenant cette ligne de code. – VGR

+0

L'antislash au début est-il important? –

0

Vous n'avez pas besoin de lancer un objet ClassLoader, il suffit d'utiliser la méthode getResource() de votre classe comme ceci:

URL url = ImageDisplayTest.class.getResource("resources/wifi.png"); 
+0

Y a-t-il un substitut pour ImageDisplayTest? Je veux charger une icône sur un bouton. –

+0

Il suffit d'utiliser un nom de classe où le dossier 'resources' est dans le même dossier avec elle – fujy

+0

Il montre que je dois créer une classe nommée ImageDisplayTest pour continuer. Y a-t-il une autre classe standard à utiliser? –