由于某种原因,以下代码未正确导入图像并显示它。如果我注释掉绘图部分它是有效的。我无法弄清楚原因。
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
文件夹中。
我很感激你的帮助。
答案 0 :(得分:1)
请勿在{{1}}
中加入“src”picPath
答案 1 :(得分:1)
从类路径中获取资源,在jar中看到7zip或Winzip:
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);
答案 2 :(得分:0)
放在这里:
workspace/BoardMaskTest/pictures/
相应地更改路径。