我想知道是否有人可以帮助?我一直在开发一个java应用程序,它在jframe上显示磁盘上的图像。使用netbeans,我在项目中创建了一个名为images的java包,并将图像存储在该包中。首先,如果我想让他们与应用一起发布,我应该这样做吗?
我有以下函数来读取图像:
Image readImg(String file)
{
Image image = null;
try {
File imgFile = new File(file);
image = ImageIO.read(imgFile);
} catch (IOException e) {
// System.out.println("Can not Display Image");
e.printStackTrace();
}
if (image != null){
return image;
} else{
return null;
}
}
我的问题是我不能计算出传递给函数的相对文件路径。我已经得到了要显示的图像,像这样调用它:
Image headerImg = readImg("C:\Users\D@nb0y\Documents\NetBeansProjects\GiftAidApp\src\images\galogo.png");
显然,如果应用程序在任何其他设备上运行,这将完全崩溃。谁能给我一个提示,使这个代码可移植?
thanks very much
因为它是一个JFrame
你试图添加一个图像,它可能是更好的使用ImageIcon
而不是Image
。
试试这个:
ImageIcon image = new ImageIcon("images/galogo.png");
JLabel imageLabel = new JLabel(image);
frame.add(imageLabel);
这应该使应用程序可移植,以及如果你包括你的images
文件夹随着你的项目。