在没有完整图像路径的情况下,无法使用新File()将图像加载到BufferedImage对象中。
当我尝试使用新File()将image.png加载到BufferedImage对象中时,我会遇到结果:
public class PicturePanel extends JPanel {
BufferedImage image=null;
public PicturePanel() {
try {
image = ImageIO.read(new
/*Works fine with full path: */
File("C://Users//benjamin//Desktop//Pictures//whiteFish.png"));
/*fail - throw an exception: */
//image = ImageIO.read(new
File("//RandomThingsInGui/whiteFish.png"));
} catch (IOException e) { e.printStackTrace(); }
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0,0,500,250,null);
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.add(new PicturePanel());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setSize(600,400);
f.setVisible(true);
}
我需要知道是否有一种方法(以及如何)从导入的路径(我的意思是从eclipse内部)加载图像,或者当我使用新的File(...)时必须使用完整路径。
感谢帮手:)
答案 0 :(得分:1)
将“ whiteFish.png”文件复制到“ RandomThingsInGui”目录。 你可以试试吗?
try {
// AS-IS
//image = ImageIO.read(new File("//RandomThingsInGui/whiteFish.png"));
// TO-BE (replace '//' to '/')
image = ImageIO.read(new File("/RandomThingsInGui/whiteFish.png"));
} catch (IOException e) {
e.printStackTrace();
}