2017-08-24 28 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