2017-08-24 98 views
1

我已经尝试了几个解决方案来改变我的应用程序的图标,但都没有工作!当我执行以下操作时,我不会收到任何错误,但它仍然不会改变!?请,有人可以告诉我哪里出错了,因为我没有看到任何错误,我也没有收到任何错误!为什么我的JFrame图标不会从默认的java图标改变?

我甚至确定我想使用的图标是20x20像素的图标,因为我读的是某个图标的最大尺寸。

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

为什么这不起作用?任何帮助将不胜感激!

编辑:

我测试文件是否存在,证明它确实,但它仍然没有被设置为应用程序图标......这是为什么?

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

? –

+0

没有真正深入那里,但似乎如果图片无法加载,它只会返回null,而不是在构造函数中抛出错误。你可以尝试检查资源是否首先存在,例如通过测试'getResourceAsStream(...)!= null' –

+0

@FlorianSchaetz是的,之前它曾经给我,它是空的,但现在用这行代码我是使用它不是给出一个错误,但它实际上并没有改变图标。 – Maiwand

回答

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) { 

     } 

这将是你使用的是什么操作系统工作

+0

我需要在某处调用此方法吗?另外,如果我确实叫它什么作为参数使用?或者我可以从这个方法中取出代码并在创建框架之后放置它? – Maiwand

+0

这个jfram事件和工作当fram是开始运行和这种方法在这种形式在jfram类中写入,并在它(方法)你可以写任何你需要的代码 –

+0

我试过但它没有工作,无论如何,谢谢你的帮助。 – Maiwand