應(yīng)該把“//”改為“\\”,雖然“/”在java中相當(dāng)于系統(tǒng)中的“\”,但是改為“/”后依然會報錯,而“\\”則會轉(zhuǎn)義為“\”,如下:
成都創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目做網(wǎng)站、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元西華做網(wǎng)站,已為上家服務(wù),為西華各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("\\qq.jpg"));//正確
Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/qq.jpg"));//依然報錯
img src="111.png" / 引用的是同一目錄下的,你上面那段代碼根本就沒輸出到那個目錄當(dāng)然找不到了。 對于一個項目來說圖片有個專有的文件夾存放,比如在WebRoot的imageFolder下,那么你在輸出流寫圖片的時候要指定好這個相對路徑,然后頁面上用img src="../imageFolder/111.png" /
通常來說解決方案是這樣的:以一個圖片上傳的例子為例,首先會在xml文件中配置好上傳文件的絕對路徑(例如C:/XXDX/XX這樣,將來部署到服務(wù)器上時,修改配置文件路徑就好了)然后比如我們上傳的圖片都是用輸入流寫到xx/xx/war/upload中 (我看你后增加的代碼中沒有flush(),是不對的) 然后在頁面jsp中用/upload/xxx.png取值,之所以這么取是因為“/”是war根目錄,當(dāng)然你要是用"../"那種方式你要查明白你現(xiàn)在的目錄級別。
Class.getResource("")??? 返回的是當(dāng)前Class這個類所在包開始的位置
舉例
URL?url?=?XXXX.class.getResource("");
System.out.println(url);
//輸出file:/D:/space/workspace/JDK8/bin/a/
所以a文件下的圖片?不需要寫?/1.jpg??而直接寫?1.jpg
URL?url?=?XXXX.class.getResource("1.jpg");
ImageIcon對象的構(gòu)造方法很多
比如寫圖片路徑來構(gòu)造
相對路徑的寫法
ImageIcon?icon?=?new?ImageIcon("src\\a\\50.png");
完整路徑,
ImageIcon?icon?=?new?ImageIcon("D:\\space\\workspace\\JDK8\\src\\a\\50.png");
使用完整路徑,可以加載電腦上的其他位置的圖片
比如??ImageIcon?icon?=?new?ImageIcon("c:\\50.png");
在圖片上右鍵單擊------選擇Properties-------彈出對話框里有Location信息
這個信息就是完整路徑
如:把A.png放在jar包img文件夾下,那么則路徑URL應(yīng)該是
this.getClass().getResource("img/A.png"))
把路徑改成這個就可以了,不過這樣在myeclipse里找不到圖片,打成jar包就可以顯示圖片了