我无法让图像显示在Eclipse中

时间:2013-12-11 04:23:35

标签: java eclipse image embedded-resource

我对使用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();
    }
}

3 个答案:

答案 0 :(得分:0)

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

src/us.jpg

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

阅读Class#getResource()和ImageIcon(URL)构造函数。不要再将其视为文件,最终会让您的应用程序更加灵活。

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