3 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個贊
第一步:將圖像放在JAR文件中的定義位置。如果將其放入src文件夾,則可能是您的IDE或構(gòu)建工具會將其自動打包到JAR中。否則,請檢查您的IDE /構(gòu)建工具的文檔,必須將其放置在何處。
第二步:從程序中訪問文件。我假設(shè)您將其放在包(JAR中的路徑)package1 / package2中,并且該文件稱為dump.jpg。在這種情況下,您可以致電:
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/package1/package2/dump.jpg")));
getClass()。getResource(...)返回類路徑上資源的URL。您可以在類路徑中以“ /”開始路徑,并使用資源的完整路徑/包,并以“ /”分隔。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
這是處理JAR App中所有圖像和圖標(biāo)的最佳方法。
將所有圖像和圖標(biāo)壓縮到其自己的JAR文件中之后-通過將圖像JAR文件添加到“庫”選項(xiàng)卡中來配置構(gòu)建路徑,以使其現(xiàn)在包含在類路徑中。
然后,只需在構(gòu)造函數(shù)的開頭使用以下3x代碼行即可訪問所需的任何圖像,包括不接受簡單ImageIcon作為其主要圖標(biāo)的SystemTray圖像(我知道這很奇怪)。3x行是:
URL iconUrl = this.getClass().getResource("/image-iconb.png");
Toolkit tk = this.getToolkit();
someimgicon = tk.getImage(iconUrl);
(someimgicon只是一個聲明了Image變量的構(gòu)造函數(shù)) 現(xiàn)在,您可以將窗口圖標(biāo)設(shè)置為:
setIconImage(someimgicon);
并通過聲明以下內(nèi)容在設(shè)置系統(tǒng)TrayIcon時使用相同的變量:
trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);
上面的代碼使您可以輕松,集中地聲明Image或ImageIcons,而不會冒未將圖像資源放置在正確位置的風(fēng)險。JAR包含您在運(yùn)行時自動編譯的所有圖像以及程序的分發(fā),從而使其保持整潔。
另外,一旦在類路徑中注冊了JAR,您就可以隨時將任何其他圖像添加到同一JAR中,而不必大驚小怪-一切正常,添加的圖像可立即用于您的應(yīng)用程序。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊
首先在“源包”下創(chuàng)建一個包(說圖片)
將所有圖像復(fù)制到此程序包(創(chuàng)建程序包時,將在項(xiàng)目src文件夾內(nèi)創(chuàng)建一個以程序包名稱命名的文件夾,因此將圖像復(fù)制到該程序包中)
您可以通過以下方式從程序訪問圖像
范例1:
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/yourimagename")));
范例2:
URL imageurl = getClass().getResource("/images/imagename");//assuming your package name is images
Image myPicture = Toolkit.getDefaultToolkit().getImage(imageurl);
JLabel piclabel = new JLabel(new ImageIcon( myPicture ));
piclabel.setBounds(0,0,myPicture.getWidth(null),myPicture.getHeight(null));
現(xiàn)在使用此JLabel piclabel
添加回答
舉報