2017-08-24 3 views
1

J'ai essayé plusieurs solutions pour changer l'icône de mon application, mais aucune n'a fonctionné! Je ne reçois aucune erreur quand je fais ce qui suit mais ça ne changera pas!? S'il vous plaît, quelqu'un peut-il me dire où je vais mal parce que je ne vois aucune erreur, et je ne reçois aucune erreur non plus!Pourquoi l'icône JFrame ne change-t-elle pas par rapport à l'icône Java par défaut?

Je me suis même assuré que l'icône que je veux utiliser est une icône de 20x20 pixels, car j'ai lu quelque part la taille maximale d'une icône.

frame.setIconImage(
      new ImageIcon(getClass().getResource("/images/bfc_icon.png")).getImage()); 

Pourquoi cela ne fonctionne-t-il pas? Toute aide serait grandement appréciée!

EDIT:

Je teste si le fichier existe, il ne se révèle, mais il est toujours pas défini comme l'icône de l'application ... pourquoi est-ce ??

URL url = getClass().getResource("src/images/bfc_icon.png"); 
    if (url == null) 
     System.out.println("Could not find image!"); 
    else 
     frame.setIconImage(new ImageIcon(url).getImage()); 
+0

quel système d'exploitation utilisez-vous? –

+0

N'y a pas vraiment plongé en profondeur, mais il semble que si l'image ne peut pas être chargée, elle retournera simplement null là au lieu de lancer une erreur dans le constructeur. Vous pouvez essayer de vérifier si la ressource existe en premier, par exemple en testant si 'getResourceAsStream (...)! = Null' –

+0

@FlorianSchaetz oui avant de me donner qu'elle était nulle, mais maintenant avec cette ligne de code je suis en utilisant ce n'est pas donner une erreur, mais il n'est pas en train de changer l'icône non plus. – Maiwand

Répondre

0
private void formWindowOpened(java.awt.event.WindowEvent evt) {         
     try { 
      // TODO add your handling code here: 
      Image img=ImageIO.read(getClass().getResource("ur path")); 
      this.setIconImage(img); 
     } catch (IOException ex) { 

     } 

cela fonctionnera

+0

dois-je appeler cette méthode quelque part? Aussi, si je l'appelle, que dois-je utiliser comme paramètre? ou puis-je simplement prendre le code de cette méthode et le mettre après la création du cadre? – Maiwand

+0

cet événement jfram et de travailler quand fram est lancé et cette méthode écrit dans la classe jfram sous cette forme et dans (méthode) vous pouvez écrire tout le code dont vous avez besoin –

+0

j'ai essayé mais cela n'a pas fonctionné, merci pour votre aide de toute façon . – Maiwand