2012-12-29 37 views
0

出於某種原因,以下代碼不能正確導入圖像並顯示它。如果我將它的繪製部分註釋掉,它就會工作。我無法弄清楚爲什麼。Eclipse,將不會導入圖像?

import javax.swing.*; 
import java.awt.*; 
import java.net.URL; 

public class BoardBuild extends JPanel{ 
    String picPath = "pictures/"; 
    String[] fileName = {"board.png"}; 
    ClassLoader cl = BoardBuild.class.getClassLoader(); 
    URL imgURL[] = new URL[1]; 
    Toolkit tk = Toolkit.getDefaultToolkit(); 
    Image imgBG; 
    public BoardBuild() throws Exception { 
     for (int x = 0; x < 1; x++) 
      imgURL[x] = cl.getResource(picPath + fileName[x]); 
     imgBG = tk.createImage(imgURL[0]); 
    } 
    public void paintComponent(Graphics g) { 
     g.drawImage(imgBG, 0, 0, 150,150 , 0, 0,73, 73, this); 
    } 
} 

由於它是Eclipse的,拍出來的照片的文件夾workspace\BoardMaskTest\src\pictures英寸 我將不勝感激。

回答

1

資源是從類路徑中拍攝,在一個罐子或7zip的看的Winzip看到 「SRC」:

String picPath = "/pictures/"; 

而且該圖像可以加載爲

for (int x = 0; x < 1; x++) 
     URL url = getClass(().getResource(picPath + fileName[x]); 
     imgBG = ImageIO.read(url); 
     InputStream in = getClass(().getResourceAsStream(picPath + fileName[x]); 
     imgBG = ImageIO.read(in); 
0

下放到這裏:

workspace/BoardMaskTest/pictures/ 

相應地改變你的路徑。

1

不包括在picPath

String picPath = "/pictures/";