尝试将JLabel图标设置为图像目录,而不是空指针异常

时间:2014-01-31 18:51:25

标签: java eclipse nullpointerexception icons imageicon

线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException     在javax.swing.ImageIcon。(ImageIcon.java:205)

JLabel background = new JLabel(new ImageIcon(getClass().getResource("/resources/splashscreen.jpeg")));

以上行是抛出异常的确切行,它让我相信文件的位置不正确,但我尝试过很多东西但没有成功。

文件夹结构似乎是正确的,图像位于项目文件夹中的资源文件夹中,文件夹(带图像)位于不在其中的src文件夹旁边。此应用程序必须具有脱机使用的能力,否则我只会使用URL。 Eclipse IDE中是否存在已知错误?

想出来。似乎我把文件放在错误的位置,把它与.class文件解决了问题。不确定这不是一个合适的解决方案或只是一个解决方案。我不得不回到基础知识。编译了.java文件并且.class文件实际上正在运行,我需要从当前工作目录回溯。

4 个答案:

答案 0 :(得分:0)

似乎“/resources/splashscreen.jpeg”是绝对路径。尝试没有前导斜线或给出“真正的”绝对路径。

编辑:我很确定找不到文件,getResource()返回null。

为什么不尝试获取文件大小?摆弄这个:

File f = new File("/resources/splashscreen.jpeg");
long length = f.length();

直到长度!= 0

: - )

答案 1 :(得分:0)

试试这个,将您的图片放在外部文件夹源文件夹中,名为图片 然后尝试:

public class Test{
public Test()
{
JFrame frame= new JFrame();
JLabel label = new JLabel(new ImageIcon("Images/image.jpeg"));
    frame.getContentPane().add(label);
    Container log = login.getContentPane();
    log.setBackground(Color.WHITE);
    frame.setVisible(true);
    frame.setSize(400,400);
    frame.setLocationRelativeTo(null);
}
public static void main(String[] args)
{
 new Test();
}

尝试启动此应用。

答案 2 :(得分:0)

实际上,在这种情况下,您必须将“resource”文件夹放入源文件夹中。

答案 3 :(得分:0)

我只是摆弄着同样的问题,@ OiRC的回答对我很有帮助。我按照youtube教程获取代码,如下所示:

time.Time

我一直在

上收到NullPointerException
ImageIcon helpIcon = new ImageIcon(getClass().getResource("helpIcon.png"));
lbl_helpIcon = new JLabel(new ImageIcon("helpIcon.png"));
lbl_helpIcon.setBounds(178, 11, 139, 62);
lbl_helpIcon.setIcon(helpIcon);

直到我尝试过

ImageIcon helpIcon = new ImageIcon(getClass().getResource("helpIcon.png"));

像魅力一样工作!顺便说一句,我像my project directory

那样存储了我的图标图像