我想知道是否有人可以提供帮助?我一直在开发一个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");
显然,如果应用程序在任何其他设备上运行,这将彻底崩溃。任何人都可以告诉我这个代码是否可移植?
非常感谢
答案 0 :(得分:0)
由于您尝试添加图片为JFrame
,因此最好使用ImageIcon
代替Image
。
试试这个:
ImageIcon image = new ImageIcon("images/galogo.png");
JLabel imageLabel = new JLabel(image);
frame.add(imageLabel);
如果您将images
文件夹与项目一起包含在内,这应该可以让应用程序移植。