我希望有一个地方来存储我的图像文件,以便在我的Java项目中使用(一个非常简单的类,只是将图像加载到面板上)。我已经到处寻找,但找不到如何做到这一点。我该如何做呢?
我尝试添加一个新文件夹到项目中,添加一个新的类文件夹到项目中,以及添加一个新的源文件夹到项目中。无论我做什么,我总是得到一个IOException
。这些文件夹总是说它们在构建路径上,所以我不知道该怎么办。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PracticeFrame extends JFrame{
private static BufferedImage image;
Thread thread;
public PracticeFrame() {
super();
setPreferredSize(new Dimension(640,480));
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main (String[] args) {
PracticeFrame pframe = new PracticeFrame();
try {
image = ImageIO.read(new File("/islands.png"));
} catch (IOException e) {
e.printStackTrace();
}
JPanel panel = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image,0,0,null);
}
};
panel.setBackground(Color.BLUE);
panel.repaint();
pframe.add(panel);
}
}
编辑:对我有效的一种方法,我不知道为什么,是将main/res/
文件夹添加为类文件夹,然后再将其删除。当/main/res/
作为类文件夹的一部分并且构建路径时,我运行它仍然无法正常工作。当我添加它时,弹出一个告诉我某些内容已排除的筛选器的窗口。但当我从构建路径中的库中删除文件夹并将文件路径更改为:
image = ImageIO.read(new File("src/main/res/islands.png"));
至少我不再出现IOException
异常了。我可能没有正确地将图像添加到面板中,因为它没有显示出来,但至少它找到了这个文件(我想)。
.class
文件的目标位置。 - PM 77-1