我想在面板中設置圖像圖標。我試圖這樣做;在面板中設置圖像圖標
JLabel label = new JLabel(new ImageIcon("logo.jpg"))
panelHeader.add(label);
add(panelHeader);
但圖像沒有顯示。任何建議我做錯了什麼?
我想在面板中設置圖像圖標。我試圖這樣做;在面板中設置圖像圖標
JLabel label = new JLabel(new ImageIcon("logo.jpg"))
panelHeader.add(label);
add(panelHeader);
但圖像沒有顯示。任何建議我做錯了什麼?
構造函數new ImageIcon()
只是創建一個未初始化的圖像圖標。您必須調用createImageIcon()
方法,該方法返回ImageIcon
源以指定給您也創建的ImageIcon
對象。
ImageIcon icon = createImageIcon("logo.jpg", "my logo");
JLabel label = new JLabel(icon);
我應該爲createImageIcon方法導入什麼? – 2012-04-22 09:44:36
顯然它返回ImageIcon對象。 ImageIcon類屬於屬於javax的swing。 – miqbal 2012-04-22 09:48:33
new ImageIcon("logo.jpg")
的String
基於構造函數的ImageIcon
假定該字符串表示文件路徑。由於這是一個通過運行時添加到面板的圖像,因此它可能位於Jar內,因此無法作爲File
訪問。對於嵌入式應用程序資源,唯一可行的訪問是URL
。該網址可能從以下類似網址獲得:
URL logoUrl = this.getClass().getResource("/logo.jpg");
請注意領先的/
。這告訴JRE搜索相對於類路徑根的路徑上的資源,而不是相對於加載它的類的包的路徑。
+1 for'viable access' – miqbal 2012-04-22 10:29:59
請編輯您的問題以包含一個[sscce](http://sscce.org/),其中顯示了添加標籤的容器的佈局。 – trashgod 2012-04-22 09:47:45
您正在使用哪個IDE,或者您正在手動執行此操作。你有很好的答案,這個線程,[如何訪問圖像(應用程序資源)](http://stackoverflow.com/a/9866659/1057230),可能可以幫助你進一步。 – 2012-04-22 11:16:59