在java中从本地相对路径创建图像

时间:2014-08-30 00:50:08

标签: java image netbeans path

我在netbeans中有一个应用程序,其中一个文件夹与包含所有图像的应用程序位于同一目录中,我在类中也有一个属性String,我在上传图像时保存绝对路径。 如何在同一个jar中获取图像的相对路径以将其存储在字符串中? 因为那时我从URL字符串创建图像。

编辑:

我有一个包含逻辑包,演示包(带摆动)和图像包的jar。在我试图做的逻辑中:

String img = new String("\src\Images\Image.jpg"):
ImageIcon icon = new ImageIcon(img);
Icon imagen = new ImageIcon(icon.getImage().getScaledInstance(photo.getWidth(),photo.getHeight(),Image.SCALE_DEFAULT));
photo.setIcon(imagen);

1 个答案:

答案 0 :(得分:0)

建议:

  • 永远不要使用new String(...)构造函数创建新的String。没有必要这样做,你只是不必要地浪费资源。而只是使用字符串文字。
  • 不要使用Files来获取Jar文件中保存的图像。 Jar文件不包含Files。
  • 通过将String传递给ImageIcon的构造函数,你就是这样做(检查API),你试图将图像作为文件。
  • 而是使用ImageIO.read(...)和资源来获取图片。
  • 资源路径将全部取决于您的Jars结构,您尚未向我们展示的内容

如,

String path = "\Images\Image.jpg"; // this path may not be correct
InputStream imgStream = getClass().getResourceAsStream(path);
BufferedImage img = ImageIO.read(imgStream);
// process your image here if desired
ImageIcon icon = new ImageIcon(img);