【问题标题】:I can't get images to show up in Eclipse [duplicate]我无法在 Eclipse 中显示图像 [重复]
【发布时间】:2013-12-11 14:19:28
【问题描述】:

我对使用 Swing 还很陌生,我认为在 Eclipse 中我所要做的就是将一个图像文件放入 SRC 目录,然后程序就可以访问它。当然,情况并非如此。访问图像的唯一方法是提供整个“C:”文件名。我尝试将其放入子目录并将该文件夹添加到构建路径中。我认为这会起作用。

我的程序目前被称为“PullingMyHairOut”,因为这正是我正在做的事情。如果您回答,请假设我不了解 Eclipse 的内部工作原理,因为这与事实相去甚远。

import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class PullingHairOut extends JFrame{
    ImageIcon img = new ImageIcon("us.jpg");
    JLabel label = new JLabel(img);

    public PullingHairOut(){
        setSize(640,480);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        add(label,BorderLayout.CENTER);
        add(new JButton("Help"),BorderLayout.SOUTH);
        setVisible(true);
    }

    public static void main(String[] args) {
        PullingHairOut main = new PullingHairOut();
    }
}

【问题讨论】:

  • 两件事。 1-我相信Eclipse资源需要存储在项目内的“resources”文件夹中,而不是“src”; 2-您将不再能够像文件一样访问这些资源,而是作为资源。您将需要使用 getClass().getResource("/path/to/resource")
  • 图片通常放在您的res --> drawable xxxx 文件夹中。
  • 天啊.. 我以前从未见过像这样的问题。好吧,除了今天早些时候两次,昨天几次,.. 请搜索解决方案,然后再假设您有一个独特的问题。
  • 我之所以发布它是因为我找到了很多示例,但是它们都使用了我还没有弄清楚的类和方法,我想一次解决一个令人头疼的问题。
  • 感谢您的建议。有效的是 ImageIcon img = new ImageIcon(getClass().getResource("us.jpg"));并将图像放入 bin 文件夹中。这在某种程度上是有道理的,但我觉得不应该这样做。

标签: java eclipse image embedded-resource


【解决方案1】:

如果您将图像放在源文件夹中,则必须像这样访问它(如果我没记错的话):

src/us.jpg

这是因为当前工作目录从根文件夹开始。再说一次,我可能错了——我上次使用 Eclipse 加载图像文件是几个月前。

【讨论】:

    【解决方案2】:

    右键单击您的项目根目录以创建一个名为“res”的文件夹。将您的 us.jpg 移至该文件夹。并修改您的代码ImageIcon img = new ImageIcon("res/us.jpg");

    【讨论】:

      【解决方案3】:

      阅读 Class#getResource() 和 ImageIcon(URL) 构造函数。别再把它当成一个文件了,你最终会让你的应用程序更加灵活。

      TL;DR:对于源文件夹根目录中的某些内容,您应该能够使用 Class#getResource("us.jpg") 在运行时类路径中找到它的 URL(在您自己的一个上调用)类)并将生成的 URL 提供给 ImageIcon 构造函数。

      【讨论】:

        猜你喜欢
        • 2011-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 2017-12-24
        • 1970-01-01
        • 2021-09-04
        • 2020-03-22
        相关资源
        最近更新 更多