Lendo uma imagem no Netbeans

Eu tenho um arquivo de imagem no meu projeto. A hierarquia fica assim:

Estou tentando ler Manling.png em Manling.java usando este código:

public BufferedImage sprite;

public Manling()
{
    try
    {
    File file = new File("resources/Manling.png");
    sprite = ImageIO.read(file);
    } catch (IOException e) {}

    System.out.println(sprite.toString()); //This line is to test if it works
}

Eu sempre recebo umNullPointerException noprintln, então eu assumo que o caminho está errado. Tentei mover a imagem para diferentes locais do projeto e tentei alterar o caminho do arquivo (por exemplo, 'mine / resources / Manling.png' e '/resources/Manling.png'). Alguma ideia

Se você quiser um exemplo compilável completo, tente este:

package minesscce;

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.net.URL;

public class Mine extends JFrame
{
private BufferedImage sprite;

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

public Mine()
{
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    setSize(800, 600);
    setExtendedState(Frame.MAXIMIZED_BOTH);
    setBackground(Color.WHITE);

    try
    {
        File file = new File("resources/Manling.png");
        sprite = ImageIO.read(file);
    } catch (IOException e) {}

    System.out.println(sprite.toString());
}

public void paint(Graphics g)
{
    g.translate(getInsets().left, getInsets().top);
    Graphics2D g2d = (Graphics2D)g;

    g2d.drawImage(sprite, 0, 0, this);
    Toolkit.getDefaultToolkit().sync();
    g2d.dispose();
}

}

Basta configurar o projeto assim, usando qualquer imagem que você quiser:

questionAnswers(2)

yourAnswerToTheQuestion