Java - 从源加载图像

时间:2012-01-09 12:37:33

标签: java

我已经看到了这个答案:Add image to JAR Java 但我不明白它是如何运作的。我将尝试逐步解释。

一开始我将图片添加到我的项目中

  • 测试
    • SRC
      • com.test
        • tester.java
        • img.png
    • 图像
      • img.png
    • JRE系统库

我的问题 - 我应该在哪里放置我的img.png?

然后我尝试从资源中获取

URL url = tester.class.getResource(PATH);
     ImageIcon ii = new ImageIcon(url); 

我尝试了不同的方式,如下:

  • "影像/ img.png" - 它不起作用。 ii有错误的尺寸等
  • " /images/img.png" - 它根本不起作用。

你能告诉我我做错了什么吗? 如果你不困难,请一步一步。


伙计们,我已经注意到,如果我有一个长度很长的网址,我就看不到图像,但是如果我将文件复制到C :(例如),我就能看到它。发生了什么事?是bug吗?顺便说一句,我的网址包含!!!符号。

4 个答案:

答案 0 :(得分:5)

/images/img.png是绝对路径,因为它以/开头。根据您的问题,此路径不存在,因为images文件夹位于test包中,因此它应为/test/images/img.png

路径images/img.png与您尝试加载资源的类相关。问题是,我不明白你的意思是“它不起作用.ii有错误的大小等”。你应该详细说明一下。

我不会在这里向您描述加载资源的规则,相反,我建议您查阅文档:

答案 1 :(得分:2)

您应将图像放在图像文件夹中。

并像这样加载图像

String path = "images/img.png";
URL url = tester.class.getResource(path);

答案 2 :(得分:0)

我为我的问题尝试了所有这些答案,但没有一个能够奏效。我问了一位朋友,他完美地回答了我的问题。创建一个名为Images的源文件夹(即如果您正在使用eclipse,请右键单击您的项目 - > new - > sourceFolder)。无论你想要什么,我都称它为我的图像。把一些图像放进去。

现在我有JLabels,我给了他们ImageIcons。请查看以下代码。

int

setPieces()方法还有很多内容,但是这一瞥是在创建可执行jar并想要显示图像时如何引用源文件夹中的图像。

答案 3 :(得分:-1)

你再次使用你的路径Images / BPawn.png,做:  BPawn = new ImageIcon(" {Projectname} / {map} / {image.jpg / png / whatever}");

WPawn也是如此