线程“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文件实际上正在运行,我需要从当前工作目录回溯。
答案 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
我一直在
上收到NullPointerExceptionImageIcon 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"));
那样存储了我的图标图像